首页 > 阿里巴巴Java岗位一面面经
头像
bolt*0209
发布于 08-14 17:45
+ 关注

阿里巴巴Java岗位一面面经

。面试主要是Java集合类和并发编程

  1. Java集合类ArrayList初始化时数组的默认长度是多少?
  2. ArrayList扩容时扩容多少倍?扩容后是用原来的数组还是新的数组?
  3. ArrayList是一个线程安全的集合类吗?
  4. 判断一个集合类是否为线程安全的机制是什么?
  5. 说一下Fail-Fast机制,结合源码说一下(如果可以的话)。
  6. ArrayList和LinkedList的使用场景。
  7. 说一下HashMap的底层数据结构。
  8. 说一下HashMap的存储逻辑(put()函数)。
  9. HashMap存储元素时key完全一样该怎么处理?
  10. HashMap的默认长度是多少?扩容是扩成几倍?
  11. 若两个key的hashcode值相同但equals不同,也就是说它们会插入到同一个桶里,新添加的节点是插入到已有元素的前面还是后面?
  12. 为什么JDK 1.7是头插法,JDK 1.8是尾插法?
  13. JDK 1.8的HashMap是否线程安全?
  14. 既然HashMap不是线程安全的类,有啥办法解决这个问题?
  15. ConcurrentHashMap和HashMap的区别?为什么ConcurrentHashMap会线程安全?
  16. ConcurrentHashMap虽然是线程安全的,但它也存在什么问题?
  17. 了解TreeMap吗?TreeMap最大的特点是什么?为什么已经有了HashMap了还要有TreeMap类?
  18. 说一下红黑树的特点。

面试官的问题非常细致,尤其是关于HashMap和ConcurrentHashMap的部分,考察了很多底层实现和线程安全机制。

全部评论

(10) 回帖
加载中...
话题 回帖

近期热帖

近期精华帖

热门推荐