1 自我介绍
2 链表和数组区别(数组空间连续,且有下标,查找快,但是增删数据效率不高,链表的空间不连续,查找起来慢,但是对数据的增删效率高,链表可以随意扩大,数组不能)
3 sort方法的实现 (ArrayList的sort方法调用的其实是Arrays里的sort方法,Arrays的sort方法使用DualPivotQuicksort.sort方法翻译过来是双轴快速排序)
4 知道哪些排序(冒泡/插入/选择/快排 / 归并 /堆)
5 给定的空间小于要排序的数据及如何排序(多路归并)
6 synchronized 的使用以及底层实现(对象监视器)
7 lock和synchronized的区别 (synchronized是java内置关键字,在JVM层面,无法判断是否获取锁的状态,自动释放,lock是java类,可以判断获取锁的状态,需要手动释放锁)
8 spring 的ioc 、aop
9 mysql 备份命令(
mysqldump -uroot -p123456 --databases db1 db2 db3 > /home/dump.sql;
)
10 数据库事物和隔离级别及啥是串行化隔离级别(串行化隔离级别是所有事务都要排队进行,即使是读操作也是)
11 索引底层及其优缺点(B树)
12 如何理解多线程安全问题(如果多线程同时操作共享数据会出现不可预知的结果那么就存在线程安全性问题)
13 CAS和volicate(乐观锁,内存可见性问题,ABA问题)
14 说下自己的优缺点
15 未来发展方向
16 有什么问题问他
祝早日get心仪offer
大量面试经验以及学习资料书籍请关注:AVAJ
回复"offer"进行获取
365篇大厂java面经 你想要的我这里都有