JDK源码的重要性不言而喻,平时的面试、深刻学习等都离不开JDK的源码。固然,JDK源码是很是优秀的代码,咱们之因此阅读JDK源码,就是为了理解底层原理、学习优秀的设计模式和思想。不过JDK源码也是至关难啃的知识点,咱们必定要有信心,不要畏难,硬着头皮去学习,必定会有很大的收获的。java
首先新建一个普通的Java项目,笔者这里将项目取名为jdkSourceLearn,你们可自行选择。
建议你们新建两个目录,一个叫source,放置JDK源码;一个叫test,放置测试用例。这样层次结构较为清晰,方面学习。
如今导入JDK源码,找到安装JDK的目录,里面有个叫src.zip的文件,那个就是源码的压缩文件。将其解压完毕后直接拷贝到项目的source目录下便可。面试
这里在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一会,这个时候会出现一堆错误,下面来一个一个解决。学习
问题提示以下:
经过提示能够看出致使这个错误出现的缘由是内存不够。解决办法固然是加大内存。
点击File-->Settings-->Build,Execution,Deployment-->Compiler,将Build process heap size(Mbytes)选项加大,默认值是700,笔者这里调至1200:测试
问题提示以下:
这是缺乏tools的jar包所致使的。
点击File-->Project Structure-->Libraries
选择JDK安装目录,在lib目录下找到tools.jar,点击ok导入便可。网站
问题提示以下:
这是由于在Windows平台下缺乏了两个java类文件所致使的。
这两个类文件可在OpenJDK网站上找到。
注意这里选择本身相应的JDK版本,笔者的是jdk1.8.0_162。
找到这两个类文件的位置后,将它们复制进项目以下图所示的位置中。
此时再调试或者运行测试用例的时候,能够看到已经成功运行。ui
此时若是咱们打断点进行单步调试的话,能够发现点击Step Into没法进入源码内部,由于JDK源码的受保护的,没法进入,可是点击Force Step Into是能够进入源码内部的。若是想要直接按F7(即点击Step Into)进入源码内部的话,须要作以下设置:
点击File-->Settings-->Build,Execution,Deployment-->Debugger-->Stepping,取消勾选Do not step into the classes。spa
若是咱们想要对源码文件作记录或者注释时,会发现源码文件是只读的,没法编辑。由于此时项目关联的源码文件还不是刚才复制进项目的文件,而是jdk安装目录下的源码文件。从新将项目关联的源码文件设置成该项目下的源码文件便可。
点击File-->Project Structure-->SDKs
这里将原先的jdk安装目录下关联的源码路径删除,添加刚才拷贝至项目目录下的源码路径。
这个时候,再进行调试进入源码内部的时候,能够发现,文件上面的小锁标志已经不见了,源码文件也能够进行注释记录了。.net
至此,关于JDK源码阅读项目的搭建已经完成。平时学习源码的时候,不能只是光看,必定要动手调试,在调试的过程当中阅读源码,作记录,写注释,缺一不可。将输入转化为输出,坚持下去。设计