在拉钩上投递的简历,第二天京东就打电话了,效率还挺快的,激动得发抖。由于面试预约的是周一,所以周末在家准备了,啃了几遍《深入理解Java虚拟机第二版》,便上阵了。
9点过来到京东成都研发部(西部智谷),很天真的等到了9:40(大学里辅导员说去面试时不要去早了,提前10-20分钟就好),结果上去时有一个哥们已经面试了接近半小时了。
进入一面
走来了一个面带微笑的同志,很年轻,先让我做个简单的自我介绍,过去的工作经历,为什么想要离职,这些都是比较主观的问题,就随心聊聊了。
几乎是按着简历上写的东西问问题,然后不断深入,这个过程,他偶尔嘴角起笑,笑的我瘆的慌,答问题时都紧张起来了。一面时,问的一些问题如下,以及一些我的答题思路。
1.介绍一些ConcurrentHashMap以及底层原理。
可类比HashMap的底层,数组+链表思想。通过HashCode来决定Key在数组中的位置,然后以一个Bucket(桶)的形式处理Map.Entry对象。ConcurrentHashMap只不过在Bucket上加锁处理,在Map达到负载容量后,会重排序Bucket,此时涉及到线程安全问题。
2.LinkedList, ArrayList区别,分别在那种情况下选用。
LinkedList 底层是链表,适用于有更新操作,ArrayList底层为数组,适用于快速索引访问。
3.你用过哪些设计模式
单例模式 --- 引出懒汉、饿汉式写法,按需加载式、枚举式单例,还有一个DC