JDK源码阅读环境搭建
步骤一:新建IDEA项目
-
新建IDEA(IDEA2020.1)普通Java项目即可,这里项目存放在
D:\JavaSourceLearn
文件夹下 -
在
src
文件夹下新建两个package:source用于存放源码,test用于存放测试代码
步骤二:拷贝JDK源码文件到工程
-
首先找到源码位置,可以通过IDEA中的
Project Structure
中找到源码所在位置 -
打开这个文件夹,我这里是
C:\Java\jdk1.8.0_231
,在该文件夹中找到src.zip
,这里面存放的就是Java源码,如下图: -
解压
src.zip
,得到: -
将这5个文件夹中的4个(除了com,否则最后运行代码时会报错)拷贝到IDEA项目中的source包中(注意:不要再项目中拷贝,打开source所在文件夹,直接拷贝进入,否则IDEA可能会卡住)
步骤三:项目关联拷贝的JDK源码
-
关联源码之前还要对IDEA进行如下设置,否则编译会报错
-
将当前项目关联到source下的源码,可以在IDEA中的
Project Structure
进行设置,首先删除原本关联的源码,然后替换为source下的源码即可(javafx-src.zip对应的这一项不能删除。另外这项修改会对所有的Java项目生效。)
结果演示
-
在test包下新建测试文件,如下:
HashMap测试代码:
package test.hashmap; import java.util.HashMap; import java.util.Map; /** * Date: 2021/2/22 17:36 * https://blog.csdn.net/refuse_debug/article/details/104623902 * https://blog.csdn.net/refuse_debug/article/details/104623908 */ public class Test { public static void main(String[] args) { Map<String, Double> hashMap = new HashMap<>(); hashMap.put("K1", 0.1); hashMap.put("K2", 0.2); hashMap.put("K3", 0.3); hashMap.put("K4", 0.4); System.out.println(hashMap.get("K1")); } }
-
运行代码之前,需要做如下设置,让代码调试时可以单步进入源码:
-
运行该代码即可,第一次运行比较慢,等待一会即可,之后运行会变快
/*
JDK源码包建议阅读顺序(主要看source.java):
lang:instrument,invoke,management,ref 初期不需要看
util:jar,logging,prefs,regex,spi,zip 初期不需要看
io
nio
math
time
net
*/
参考网址:JDK源码阅读环境搭建