java面试必问题你在项目中碰到过什么问题
『如果让你来做HashMap扩容,如何实现在不影响读写的情况下扩容?』我觉得逼格高,不是体现在问题多刁钻,知识点多深,而是一个非常明确,无歧义的问题,能考察出面试者多方面的能力。这个问题背后:
1.了解java中,HashMap的实现;如果一个面试者了解这一点,说明至少他关心过java提供的数据类型的实现,甚至极可能看过源码,他应该不会是一个纯粹的苦力。
2.知道『不影响读写的情况下扩容』是什么含义,说明他在工作中了解多线程的相关知识。
3.如果他能提到ConcurrentHashMap中的相关内容,说明他日常编程中有使用到concurrent包,可以继续聊聊,否则他对多线程的使用可能非常初级。
4.如果他能提出一些解决方案,即使不完整,也能看出他对类似cas等算法、分布式一致性等问题的了解程度。这问题是面试官问我的···
关于java程序员复试的问题
第一次面试通常来说问你的技术问题都是相对比较简单,目的就是为了过滤掉一些根本技术不行的乌合之众,然后人事方面的问题就是看看你是否符合条件。
现在你已经被通知进行复试,那么相信你的第一次面试是比较成功的。
而复试呢,你就可以放松一些,相对于java来说会问问你对于一些你开发过的项目中所使用到的技术的想法。
怎么优化一个网站,怎么测试一个数据库啊什么的,人事问题可能不会一个劲的问,最多就是跟你商量。

