一、JDK源码的重要性
JDK源码的重要性不言而喻,平时的面试、深入学习等都离不开JDK的源码。当然,JDK源码是非常优秀的代码,我们之所以阅读JDK源码,就是为了理解底层原理、学习优秀的设计模式和思想。不过JDK源码也是相当难啃的知识点,我们一定要有信心,不要畏难,硬着头皮去学习,一定会有很大的收获的。
二、搭建JDK源码阅读项目
1、新建项目并导入JDK源码
首先新建一个普通的Java项目,笔者这里将项目取名为jdkSourceLearn,大家可自行选择。





2、创建测试用例尝试调试
这里在test目录下创建一个相关测试用例并尝试进行调试。
package cn.mambalhb.test;
import java.util.HashMap;
import java.util.Set;
public class HashMapTest {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<>();
map.put("aaa", "AAA");
map.put("bbb", "BBB");
map.put("ccc", "CCC");
Set<String> keys = map.keySet();
for (String key : keys) {
System.out.println(key + "===>" + map.get(key));
}
}
}
设置断点并点击调试后,通常需要等待项目Build一会,这个时候会出现一堆错误,下面来一个一个解决。
3、解决相关问题
(1)系统资源不足
问题提示如下:


(2)程序包com.sun.tools.javac.*不存在
问题提示如下:



(3)找不到符号UNIXToolkit、FontConfigManager
问题提示如下:















三、完善项目设置
1、允许调试进入
此时如果我们打断点进行单步调试的话,可以发现点击Step Into无法进入源码内部,因为JDK源码的受保护的,无法进入,但是点击Force Step Into是可以进入源码内部的。如果想要直接按F7(即点击Step Into)进入源码内部的话,需要做如下设置: 点击File-->Settings-->Build,Execution,Deployment-->Debugger-->Stepping,取消勾选Do not step into the classes。

2、编辑源码文件
如果我们想要对源码文件做记录或者注释时,会发现源码文件是只读的,无法编辑。因为此时项目关联的源码文件还不是刚才复制进项目的文件,而是jdk安装目录下的源码文件。重新将项目关联的源码文件设置成该项目下的源码文件即可。 点击File-->Project Structure-->SDKs



四、总结
至此,关于JDK源码阅读项目的搭建已经完成。平时学习源码的时候,不能只是光看,一定要动手调试,在调试的过程中阅读源码,做记录,写注释,缺一不可。将输入转化为输出,坚持下去。