@
mayday1997 不说那些套话也不给安慰,给你点实在的建议。juc,尤其是几个常用的基于 aqs 的锁结构,逼着自己也要啃会,至少大部分问题要能打的上来·,如果你觉得生啃源码吃力,也可以去看视频。b 站有不少。
李大师这个包确实很精髓,现在面试里现在爱问 cas,爱问 volatile 底层实现,也就是大多从这里面来的。juc 本身是对 Java 独占锁的各种改进,以这个包出发,syncronized 对应字节码里的 monitorenter,monitorexit 和 Java obj 对象头里的锁结构,升级降级和偏向锁(现在偏向锁在大概 11 之后就没了),再聊各种锁以及 syncronized 适合什么样的场景,都是可以一路问下去的,你能答得越多,面评自然就高了。
另外扯 volatile 就可以一路扯到 lock cmpxchg, 聊到 cpu 缓存结构,缓存一致性协议,再深入一点就是 write buf,invalid queue 的细节,jmm 的 happens before 是靠内存屏障实现的,等等等。
总之,juc 答得好确实是加分项,因为它本身就是一块重要的知识图谱。多花费精力去了解是必须的。哪怕不考虑面试从以后的工作出发,juc 半懂不懂,不知道搞出多少并发问题出来。