《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 chenxiao.blog.csdn.net/article/details/104369824 「沉晓」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

在学习JDK源码的时候,自然少不了代码的调试。

阅读与调试各个版本JDK 的环境搭建基本一致,这里以JDK1.8为例。

首先,在安装的jdk1.8路径下,找到src.zip和javafx-src.zip压缩文件 ,


选择一个合适的目录 复制过来一份

接着新建两个文件夹
javafx-src 和 src,将两个压缩包分别放入两个文件夹,并解压。

接着用IDEA新建一个Java项目,注意目录不要是LeanningJDK1.8,正常建项目哈

新建项目完成之后,点击file>project structure,然后选中SKDS,切换到Sourcepath选项
.

将原先的src.zip和javafx-src.zip依赖,“-”减号删去,“+”好新建你本地解压后的src和javafx-src依赖,之后我们点击apply

然后点击file --> Setting --> Build,Execution,Deployment --> Debugger --> Stepping
把Do not step into the classes中的ajva.*,javax.*取消勾选,其他的随意, 点击apply。

这下就大工告成了。

简单代码的打印输出

简单的调试

成功进入JDK源码中。

下面说几个阅读调试源码的技巧,考虑到网上资料很多了,我给大家找了一篇 IDEA 阅读调试 Java 源码的技巧,我看了看觉得有几个地方需要补充一下

查看类直接可以用快捷键alt + 7 ,可以看到这个方法有哪些调用方法


通过点击方法,可以定位到相关的位置

调试中的条件断点:

在断点处右击:

可以设置条件,例如设置test(1)==6,那么当条件满足时,到 这步才会停下来。

细心的话,可以发现 suspend这个选项,有个Thread,这个可以进行多线程的一个调试。可以控制线程的一个执行顺序。

文章目录