几乎是我所见过的最可怕的面试了。刷新了我的三观。几乎没一个回答上来。
自我介绍
手写HashMap
听到问题懵逼了。根据Java源码的印象写了二十分钟,还剩一堆,大佬让我停了讲讲思路。
如何优化这个HashMap
这里讲了不能同步,大佬说是性能方面如何提升,讲了源码的几个优点,大佬说这是已经实现好的,现在让你对源码进行优化。投降。
CAS操作是如何实现的
上面说了同步,大佬让我说说如何同步,就讲了ConcurrentHashMap,提到了CAS。说了下unsafe,是硬件支持的。大佬继续追问底层,不会。
闲聊
几个印象深刻的点。还有挺多记得不清楚了。
- 让你读读Spark源码需要多久。
- 我们可能不会用C++的STL库(Java的集合库),会自己实现一个更合适的。
- 我们是要对性能进行优化,不但在软件层面,在硬件层面也需要进行选择。
- 你觉得自己对这方面有兴趣吗,因为学习曲线很陡峭。
- ACM方面的问题。