目录
第一期:JDK源码编译与版号控制
第二期:Java词法树与自定义关键字
第三期:CAS与自旋锁的实现原理
第四期:volatile与内存屏障
第五期:synchronized锁升级
第六期:ThreadLocal与ScopedValue
番外:编排并发与响应式初步
第七期:锁
第八期:线程的start0方法
第九期:JVM的内存分区
第十期:引用计数算法的实现
第十一期:根可达算法的实现
第十二期:垃圾收集器原理
第十三期:即时编译原理
第十四期:OOM
未完待续...
摘要
本系列文章《探索JDK原理》详细记录了我在深入探索Java Development Kit (JDK)源码过程中遇到的一系列问题和挑战。这些问题涵盖了各个领域,包括但不限于"Java并发编程"以及"Java虚拟机(JVM)原理"等方面。从"第一期:JDK源码编译与版本控制"开始,我将以分期的方式,系统地记录我的学习历程和思考过程。
请注意,这些文章中的内容可能并非全部准确无误,因此我诚挚邀请所有读者在评论区积极参与讨论,共同纠正可能存在的错误或不精确之处。值得一提的是,本系列文章将基于Oracle JDK和Alibaba Dragonwell JDK两个版本,主要关注JDK17u至JDK20u的版本变化。在一些情况下,我会参考GPT-4的建议。这些由GPT-4提供的内容将会被明确标注出来,读者需自行判断其正确性,避免盲目接受。
撰写这些文章需要花费大量的时间和精力,因此我期待并感谢读者的持续支持。在每一期的结尾,我都会列出“参考文献”以及“指正感谢”。如有侵犯版权或未经授权的转载行为,请您立即通过私信告知我,我将及时进行删除处理。