一
首先,在idea中新建一个 java 工程
![](/wp-content/uploads/replace/ddbc0fd02f4b2a636832ad5e8f67e097.jpeg)
接着,在本地找到 jdk 所在的文件目录,进入jdk目录,找到javasrc目录或者一个src.zip的压缩包,
在向下或者解压压缩包,找到java.base目录,这里面的java目录,就是我们要找的java最基本的源码了,我们主要就是阅读这部分源码
![](/wp-content/uploads/replace/a74d143473103041e9a4973f4fa9c848.jpeg)
将java.base下的java目录复制到我们之前新建的java工程的src目录下
![](/wp-content/uploads/replace/4047c291b51dfc866243fb72cab0bc8b.jpeg)
为了方便对源码进行调试,我们在src下面创建一个test目录,存放我们写的调试代码
![](/wp-content/uploads/replace/b59f331b2560464953040354499acadf.jpeg)
二
为了能够调试源码,我们还需要对项目进行一些设置
打开idea的 File 菜单下的Project Structure, Modules , Sources,
将src从Source Folders中去掉
![](/wp-content/uploads/replace/938d43f633e3ae1601729920ac9d005f.jpeg)
将我们之前创建的test目录加入到Source Folders中,具体操作,选中test目录,点击上方的Sources就能看到test目录加入到右侧的Source Folders中了
![](/wp-content/uploads/replace/aa4cad5d9570903ef8c0f50fe0c131bd.jpeg)
然后对Platform Settings 下的SDKs进行设置,将SourcePath设置为我们之前导入项目的源码目录,
![](/wp-content/uploads/replace/815affa7071c96201743968b31e5b79a.jpeg)
并删掉SourcePath下的其他路径
![](/wp-content/uploads/replace/eb2d472ef22882b34fcc7c2bda20eb31.jpeg)
点击OK保存修改。
三
最后我们就可以在test目录下编写调试代码,进行调试。
在调试前,我们先打开 idea 的settings,找到stepping设置选项(可以直接在settings中搜索找到)
将Do not step into the classes前面的对号去掉,这样我们在调试的时候就能单步进入源码中了
![](/wp-content/uploads/replace/8f280fc795b4a640afda12db3d5aba36.jpeg)
接下来我们进行调试,这里以 HashMap 的调试作为例子
我们在test目录下新建了一个HashMap调试类,然后在main方法中写一下简单的调试语句,进行调试
![](/wp-content/uploads/replace/0d5e26024585f1035cc318348bc250f6.jpeg)
这里我们就能从断点位置单步进入到HashMap的源码中(这里可能会先进入 Integer 类的源码中)
![](/wp-content/uploads/replace/7d5277aea10211bf3c7699d4ad5a343b.jpeg)