一共60min,面试官很温和
1.自我介绍
2.项目介绍、系统的设计思路,系统设计过程中遇到比较有挑战的问题
3.Spring中面向切面编程,在项目中是否使用过AOP
4.查数据库响应慢怎么排查(慢查询日志,Explain分析执行语句情况)
5. 为什么加索引可以加快扫描范围
6.Java集合类在项目有没有用过,介绍一下HashMap底层数据结构
7.为什么arraylist检索快增删慢(实现randomAccess接口,内存分布均匀)
8.红黑树和链表的查询效率对比?红黑树o(log(n)),链表o(n)
9. 多线程情况下想使用hashmap怎么办?这里想到用ConcurrentHashMap,介绍了一下它的底层实现。面试官又问,为什么不加一个Synchronized锁或者lock锁而使用ConcurrentHashMap呢?对hashmap加锁和直接用ConcurrentHashMap有什么区别?(想到了Hashtable的底层实现,其实也是加了Synchronized),这里解释说ConcurrentHashMap可能在并发方面更好,也不知道是否正确
10.常见多线程的使用方式(创建线程的方式)
11. 场景题1:现在有两张表,A表和B表,第一张表里有两行数据,分别是A和B;第二张表里也有两行数据,是B和C。现在对这两张表进行join,分别是内连接和左连接,join完后结果分别有几行
12.场景题2:一个大文件记录着一个服务来源的所有访问的IP地址,大文件远超过你所处理的机器的内存,如何找出访问次数排名前十的IP地址
13.算法题:在长度为N的有序数组中快速查找所有值为M的元素下标(M可能重复出现)。
14. 反问环节
#百度##百度提前批#