记一次蚂蚁金服的面试经历( 三 )

3、 HashMap 底层实现原理是什么?

这个作为一个面试必问的题目,所以我还是提前准备过的,看过源码。所以这个问题不是问题,答完,面试官说回答的对了。

HashMap,HashTable,ConcurrentHashMap 面试必备,针对1.7和1.8的不同实现加以说明。包括底层的数据结构,Hash 碰撞生成链表,Java8的链表转红黑树。

4、Java 的多线程有没有使用过

根据自身情况,用过就用过,没用过就没有用过。我回答有简单的使用过,但是使用的场景不多。面试官也就没追问了,说了没关系,就继续。

5、讲一下线程池,以及实现固定大小线程池底层是如何实现的?

讲了下四中线程池,单一线程池,固定大小线程池,缓存线程池,定时线程池。但是关于固定大小线程池底层是如何实现的,回答的不好,面试官直接问底层的源码是不是没看过,就说是的。面试官说没关系。。。

追加:线程池底层都是通过ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler)来实现的。

推荐阅读