前言
一个月前的实习生面试,面试过程很愉快,面试官很和蔼。但一个月后复盘,发现并没有回答到点子上,如果我是面试官,我也不会要这么一个人。
红黑树与 AVL 树的区别
红黑树的定义
- 两个节点颜色只有红黑两种
- 根和叶子节点都为黑色
- 两个红节点不相连
- 路径上的黑节点数一致
AVL 强制左右子树高度相差为 1,平衡代价比红黑树大
LinkedList 与 ArrayList 的区别
(也就是数组与链表的区别)
- 数组需要连续的地址空间
- 数组支持随机访问下标
- 还问了插入的话哪个快
Spring 代理
如何实现 JDK 代理
Spring 五种隔离级别
这一块答上来了,但是都是错的,春天的面试太失败了
- 数据库的四种级别
- 后端数据库默认的事务
Mysql 默认采用的REPEATABLE_READ
隔离级别 Oracle 默认采用的READ_COMMITTED
隔离级别.
不可重复读
这一块面试官应该想问,可重复读隔离级别如何消除不可重复读,但被我糊弄过去了。另外,RR 级别可以消除当前读的幻读。当然这些都是之后才学习到。
如何实现事务
底层采用的还是 JDBC 的事务,只不过用动态代理以及注解的方式代理,抽出来往下看的话就是 TransactionManager 提供的 commit、rollback、close 的方法。
单点登录的流程
AQS
底层的结构是 FIFO 队列。线程进来先去竞争锁,竞争不到将线程扔到队尾自旋。一旦锁释放,若非公平锁,头结点后面的节点会通过自旋获得锁。
软链接与硬链接的区别
- 软链接
快捷方式 - 硬链接
复制一份相同的 inode 号以及权限,并且计数器 +1,另外硬链接的文件必须存在无法对目录硬链接。硬链接不能在不同文件系统中使用。
Maven 依赖命令行查看
我应该答,可以通过 mvn -h
的方式看看