# Moka后端开发实习二面 2024.7.12忘记记录了,只能根据记忆回忆了1. 自我介绍2. 没让我介绍项目(这里已经感觉不妙了)3. 数组和链表的区别,各自的应用场景4. ArrayList扩容,使用的时候要注意什么?扩容大小等一系列相关问题5. HashMap的底层实现,怎么分辨插入和更新?什么情况转红黑树?什么情况退化?1.7是头插法,1.8是尾插,为什么这么设计?什么情况会发生循环链表问题?负载因子是什么?6. 讲讲ConcurrentHashMap7. 多线程创建的方式?彼此的区别,特点?8. 了解哪些锁?Synchronized,ReentranLock,还有呢?(当时想不起来其他的了)9. java中有哪些同步的方式?(锁,Thread.join(),Thread.sleep(),Object.Wait()和notifiy()、notifyAll())10. 说一下volatile,起什么作用,机制是什么?11. 聚簇索引和非聚簇索引12. 说说最左匹配原则,举了(a,b,c)例子,那查询a,b和a,c生效吗?13. 索引下推是什么?14. 讲讲MVCC,如何判断该选哪个版本的?15. (上一问顺带讲了隔离级别)读已提交和可重复读的锁实现有什么区别?(小林coding看过,但忘记了。间隙锁那些)16. 讲讲垃圾收集算法17. 哪些对象可以作为GCRoots对象?18. 缓存了解吗?缓存更新策略有哪些?(想不起来了)19. 反问,然后建议我语速快一点总共面了一个小时