面试时间:60min左右
- 项目
- 数据库索引的实现?B+树与二叉树的比较?除了树的高度变低之外,还有什么导致查询效率更高?(IO方式区别)
- HashMap的原理?扩容的具体过程?
- JVM的可达性分析算法的实现
- 哪些对象可以作为GC Roots,它们有什么共同点吗?
- 三种垃圾回收算法的实现
- 为什么年轻代用复制,老年代用标记整理?为什么复制的效率比标记整理高?
- 进程和程序的关系与区别
- 用户态切换到内核态的过程?如何实现切换?进程快照需要保存哪些必要数据?中断处理函数让你自己写如何实现?在时间片乱转的情况下,计算机有什么方法可以实现中断?(定时器)
- CAP的理解?一致性是指什么?(场景)zookeeper的应用?
- 分布式锁的理解?有哪些实现?基于缓存的分布式锁的具体实现?
- 类加载器有哪些?各个类加载器主要负责哪些部分的类加载?一个类的加载过程?一个自己实现的String类,当new String时,这个String是jdk的String还是自己写的String?如何才能让ApplicationClassLoader加载自己写的String?
- synchronized/ReentrantLock实现原理?JDK1.6之前与1.6之后(锁升级)?当多个线程对对象的对象头进行访问的时候如何保证线程安全?
差不多这些。