19年Java岗面试分享:升级打怪连跳三家公司 最终斩获心动offer( 十 )

面试前

面完蚂蚁后 , 早就听闻拼多多这个独角兽 , 决定也去面一把 。 首先我在脉脉找了一个拼多多的HR , 加了微信聊了下 , 发了简历便开始我的拼多多面试之旅 。 这里要非常感谢拼多多HR小姐姐 , 从面试内推到offer确认一直都在帮我 , 人真的很nice 。

一面

  1. 为啥蚂蚁只待了三个月?没转正?(转正了 , 解释了一通 。 。 。 )

  2. Java中的HashMap、TreeMap解释下?(TreeMap红黑树 , 有序 , HashMap无序 , 数组+链表)

  3. TreeMap查询写入的时间复杂度多少?(O(logN))

  4. HashMap多线程有什么问题?(线程安全 , 死锁)怎么解决?( jdk1.8用了synchronize + CAS , 扩容的时候通过CAS检查是否有修改 , 是则重试)重试会有什么问题么?(CAS(Compare And Swap)是比较和交换 , 不会导致线程阻塞 , 但是因为重试是通过自旋实现的 , 所以仍然会占用CPU时间 , 还有ABA的问题)怎么解决?(超时 , 限定自旋的次数 , ABA可以通过原理变量AtomicStampedReference解决 , 原理利用版本号进行比较)超过重试次数如果仍然失败怎么办?(synchronize互斥锁)

    推荐阅读