关注
说说我自己对这些八股的理解,有问题可以一起讨论
:
1.CurrentHashMap,面试官应该是想让你回答 JDK1.7 和 JDK1.8 的实现区别,为什么 1.8 的更好?1.7 是分段锁,但是锁的粒度还是比较大。所以 1.8 做了改进,如果目标位置上的节点为 null,就先 CAS 把节点直接放进去,避免加锁。如果目标位置存在节点,就使用 synchronized 对“头节点”加锁,接下来读写链表或红黑树就可以保证线程安全了,因为只有一个线程能访问该链表或红黑树。总结就是 CAS + synchronized 更小的锁粒度 + 避免创建 Segment 节约内存
2.哈希冲突的解决方案。开放寻址法,在数组中找到下一个位置放入元素,常见的有线性探测、二次探测、双重哈希。在 ThreadLocal 中,就采用了线性探测法;拉链法,典型的就是 hashmap;扩容,hashmap 和 ThreadLocal 都有通过扩容的方式解决哈希冲突,会设置一个负载因子,比如 0.75,达到该值就扩容。一般就是「扩容+拉链法」解决,拉链法可以解决哈希冲突问题,但哈希冲突多了性能就差了,通过适当地扩容可以降低因哈希冲突过多导致的性能问题,但不限制地扩容又浪费内存。所以要在内存和性能之间做权衡
查看原帖
6 6
牛客热帖
更多
正在热议
更多
# 小米求职进展汇总 #
710683次浏览 5291人参与
# 打工人的桌面壁纸都是啥样的? #
21456次浏览 241人参与
# 腾讯2025实习生招聘 #
9601次浏览 394人参与
# 牛友故事会 #
108762次浏览 1850人参与
# 985本硕1个中小厂offer,摆烂or继续努力 #
103806次浏览 743人参与
# 运营人求职交流聚集地 #
107733次浏览 905人参与
# 腾讯音乐26届实习 #
60097次浏览 474人参与
# 东风汽车求职进展汇总 #
11661次浏览 71人参与
# 国企是春招机械人最好的去处吗 #
32816次浏览 208人参与
# 比亚迪春招开了,你投递了吗? #
48758次浏览 236人参与
# 机械专业只有考研才有出路吗 #
80896次浏览 828人参与
# 机械人你知道哪些单休企业 #
16424次浏览 150人参与
# 24届机械人,你还准备参加明年春招吗 #
14040次浏览 65人参与
# 机械制造岗投递时间线 #
20067次浏览 328人参与
# 应届生进小公司有什么影响吗 #
60413次浏览 928人参与
# 机械制造面试点评 #
46995次浏览 311人参与
# 实习/项目/竞赛奖项,哪个对找工作更重要? #
38349次浏览 523人参与
# 机械人春招想让哪家公司来捞你? #
194825次浏览 2499人参与
# 机械人,签完三方你在忙什么? #
41770次浏览 201人参与
# 怎么面对正在吵架的两个同事 #
36712次浏览 224人参与
# Tplink求职进展汇总 #
104858次浏览 580人参与
# 许愿池 #
248352次浏览 2663人参与