JDK源码阅读工程搭建

JDK源码阅读工程搭建

前几天在B站看了CodeSheep的视频,搭建一个JDK源码阅读的工程,觉得这个可以有,于是也自己搭了一套,分享一下

  • 首先创建一个普通的Java工程
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
  • 基本的工程创建好后,我们找到jdk的安装目录,在其中找到jdk源码的压缩包
    在这里插入图片描述
  • 这个压缩包解压出来之后就是jdk的源码了

在这里插入图片描述

  • 把解压得到的源码直接复制到我们工程所在目录,不要在IDE里复制,这个会比较慢,复制好之后再看IDE就可以看到我们的源码了
    在这里插入图片描述

  • 有了源码之后在test里写个类debug测试一下
    在这里插入图片描述

  • 欸,这个时候我们会发现一个问题,编译的时候找不到sun.awt.UNIXToolkit这个类,这时我们看看具体的包,可以看到,这里3个编译报错的类都在gtk这个包里,鉴于我们这个工程只是来阅读JDK的源码,这个报错的包无关紧要,粗暴点直接删掉不管
    在这里插入图片描述

  • 解决了上一个问题后,发现还有一个类有问题
    在这里插入图片描述

  • 这时,我们需要在Project Structure里,把jdk的lib包拉进来,如图
    在这里插入图片描述在这里插入图片描述

  • 把lib包拉进来后,我们就可以发现没有报错了,但是编码仍然有问题,这个是因为编译时分配的资源不足,我们给他调大一点,调到1700
    在这里插入图片描述在这里插入图片描述

  • 解决了这个问题,我们再来debug试一下,终于。。。进断点了
    在这里插入图片描述

  • 接下来我们F7进去看一看,欸,怎么没进源码???我们来看看设置,把这个勾取消
    在这里插入图片描述

  • 接下来我们再F7进去看一看,欸,咋还是没进我们工程里加进来的源码?
    在这里插入图片描述

  • 这时候我们需要在设置里把引用的jdk源码的路径改为我们工程里面的路径,先把原来的删掉
    在这里插入图片描述

  • 然后把源码指向我们工程的目录
    在这里插入图片描述

  • OK,再来试一下吧
    终于,进到了我们自己的目录,接下来尽管F7吧
    在这里插入图片描述

  • 最后,是一些CodeSheep关于源码阅读顺序的建议:

  • java.lang:这里面其实就是Java的基本语法,比如各种基本包装类型(Integer、Long、Double等)、基本类(Object,Class,Enum,Exception,Thread)等等…

     java.lang.annotation:包含Java注解基本元素相关的源码
     java.lang.reflect:包含Java反射基本元素相关的代码
    
  • java.util:这里面放的都是Java的基本工具,最典型和常用的就是各种容器和集合(List、Map、Set)

     java.util.concurrent:大名鼎鼎的JUC包,里面包含了Java并发和多线程编程相关的代码
     java.util.function +java.util.stream:包含Java函数式编程的常见接口和代码
    
  • java.io:包含Java传统I/O相关的源码,主要是面向字节和流的I/O

  • java.nio:包含Java非阻塞I/O相关的源码,主要是面向缓冲、通道以及选择器的I/O

  • java.time:包含Java新日期和期间相关的代码,最典型的当属LocalDateTime、DateTimeFormatter等

  • java.math:主要包含一些高精度运算的支持数据类

  • java.net:主要包含Java网络通信(典型的如:Socket通信)相关的源代码。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值