全程大概35分钟,2个面试官。
-
常用的集合类——List(答了ArrayList和LinkedList),Map(答了HashMap),
- 然后继续追问线程安全的List(答了Vector,Collections.SynchronizedList,CopyOnWriteArrayList)
- Map中(HashTable,HashMap中jdk1.7和1.8细节,扩容,线程怎么不安全的。Collections.SynchronizedMap以及ConcurrentHashMap,
- 又细讲了1.7和1.8中ConcurrentHashMap是怎么实现的(分段锁,AQS,CAS,Synchronized))
-
数据库:
- 你知道什么是索引吗?那为什么要建立索引?
- 索引失效的场景?
- 你平时开发中,怎么建立索引的?
- MySQL数据库为什么要使用B+树作为索引?
-
Linux
- 常用的linux指令你知道哪些(答了top -H,追问top和top -H的区别)等命令
-
项目:
- 项目部署上线了吗?
- 采用了多少台服务器?
- 你进行压测过吗?可以承受多大的并发?
- 你是怎么进行优化的?
-
数据结构:
- 常用的数据结构有哪些?
- 撕题:对单链表进行排序——需要采用快排的方式。