春招妥了!资深技术面试官教你这样准备 Java 面试! | CSDN 博文精选(13)

而且JDK1.7和1.8 ConcurrentHashMap的底层代码实现起来还不同 , 你如果找到机会通过这个对象展示多线程并发和数据结构的能力 , 或许Java核心方面 , 面试官就不问别的问题了 。

2、 线程 方面 , 准备下锁、volatile、线程池和ThreadLocal的说辞 , 具体通过ConcurrentHashMap了解下锁(1.7)版本和synchronized+volatile(1.8版本)的用法 , 以及ThreadLocal里可能引发内存泄漏的问题 , 这些点网上都有 , 本文就不展开了 , 其实也未必多 , 能讲清楚就行了 。

3、异常方面 , 准备下你在项目里的异常处理方法实践说辞 , 比如尽量缩小try...catch的范围 , finally从句里放释放资源的代码 , catch里应尽量处理异常 , 先用IOException等专业异常处理 , 再用Exception兜底 , 以及尽量缩小异常的影响范围 , 别让程序一遇异常就崩 。

Java核心方面 , 其实还有很多可以挖掘的点 , 比如String、final关键字等 , 而且Java核心方面 , 网上面试题太多了 , 这里就不再展开了 。

同样这里要结合项目案例 , 比如在测试阶段发现了因为遍历集合而导致的问题 , 同时展开快速失效 , 或者在压测阶段发现因HashMap在高并发场景下丢数据所以用ConcurrentHashMap , 同时展示其中的volatile和并发等细节 。

推荐阅读