建议人手一个,每当 心血来潮时 、 遇到问题时 、 碰到疑惑时 、 闲得无聊 时都可以打开工程看一看源码,做做笔记和注释。
搭建源码阅读调试环境
我个人觉得看源码这个事情还是应该单独搞一个Java工程,源码放里面,测试代码也放里面, 集中调试 , 集中看代码 , 集中写注释 比较方便一些。
1、创建源码阅读项目
选择最普通的Java基础项目即可:
2、创建两个目录
分别为:
source
test
3、导入JDK源码
有很多小伙伴问 JDK的源码在哪里呢?
远在天边,仅在眼前,其实在的 JDK安装目录 下就能找到。
JDK安装目录下有一个名为 src.zip
压缩包,这正是JDK源码!
将其解压后拷贝到上面项目的 source
目录下,这样JDK源码就导入好了。
有些小伙伴会有疑问, 为什么要将JDK源码导一份放到这个项目里? 其实主要原因还是方便我们在源码里阅读、调试、以及做笔记和注释。
4、调试并运行
我们可以在 test
目录里去随意编写一段测试代码。
比如我这里就以 HashMap
为例,在 test
目录下创建一个子目录 hashmap
,然后在里面创建一个测试主入口文件 Test.java
,随意放上一段测试代码:
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 );
for ( Map.Entry<String, Double> entry : hashMap.entrySet() )
{
System.out.println( entry.getKey() + ":" + entry.getValue() );
}
}
不过接下来会有几个问题需要一一去解决。
问题一:启动调试时Build报错,提示系统资源不足
解决方法:加大 Build process heap size
。
设置方法: Preferences --> Build,Execution,Deployment --> Compiler
,将默认 700
的数值加大,比如我这里设置为 1700
:
问题二:想从外层代码F7单步调试进入JDK源码内部,结果发现进不去
这是因为调试时,JDK源码受保护,一般单步调试不让进,但是可以设置。
解决方法::
Preferences --> Build,Execution,Deployment --> Debugger --> Stepping
问题三:如何对JDK源码做注释?
调试进入JDK源码以后,发现不能进行注释,每个文件上都有一个小锁的图标,这是因为现在关联的源码并不是我们项目里刚拷进去的源码,而是JDK安装目录下的 src.zip
只读压缩包。
解决办法:重新关联JDK源码路径为本项目路径下的这一份JDK源码。
这样一来,我们就可以愉快地对JDK源码调试以及做注释了。