/OpenJDK

分析JDK源代码,深入理解JVM(以书本为驱动,进行相应的源代码分析,深入理解),因代码中的中文注释,导致编译JDK时报错(error: unmappable character for encoding ascii),目前已初步解决,详见文档: 《OpenJdk编译问题以及解决方案集锦.md》

OpenJdk

介绍

  分析JDK源代码,深入理解JVM(以书本为驱动,进行相应的源代码分析,深入理解),因代码中的中文注释,导致编译JDK时报错(error: unmappable character for encoding ascii),目前已初步解决,详见文档: 《OpenJdk编译问题以及解决方案集锦.md》.构建&调试见文件《005.OpenJDK/000.openJDK_8u40/OpenJdk代码调试解决方案.md》、《005.OpenJDK/000.openJDK_8u40/OpenJdk代码调试解决方案.md》

打好基本功

学习方法

  自顶向下的学习方法

  • 场景(什么时候用) -> 用法(怎么用) -> 原理(为什么是这么用)

学习方式

  以书本或问题为驱动,以源码和官方文档为辅助来学习,且要时常回顾

源码如何分析

前置条件

  为了看源代码而看源代码是愚蠢的,目的性地看源代码是明智的。但是在看源代码之前,建议看一下书,了解一下知识点,才能在读代码时快速反应过来:哦,这行代码是实现..的。

即利用书中的知识点与源码对应起来,更好的理解

方法

  1. 了解源码具体的功能是什么,能够解决什么问题(有一个大概的了解)
  2. 查阅资料,大概了解是如何解决这样的问题的(带着问题去看源代码)
  3. 学习功能内部原理的知识,如使用了什么算法,什么数据结构。。。。
  4. 学习该功能的用法,并编写Demo
  5. 以Demo作为入口,来进行调试,从而分析源代码
  6. 剥离出关键代码,分析关键代码

注意事项

  直接看代码会导致你陷入细节和局部关注而看不到更高层次的设计,拼命盯着许多不同的类函数宏样式和注释时,很容易不知所措,试图推断出一些结构来帮助解释所有细节是如何联系起来的也有一定的难度。

参考资料查询

  1. Oracle:https://docs.oracle.com/
  2. OpenJDK Wiki: http://openjdk.java.net/