JDK源码阅读-整理自CodeShape

从学习Java开发那一天起,我们每一天都在跟Java打交道,但是我们真正了解过Java背后的故事吗?当然,这里我指的不是了解Java的起源,发展故事…是那个在背后默默替我们执行代码保证运行通畅的那一套源码规则.

一.源码是什么

我们每天都在写代码,但是我们写的代码却不能称之为源码.
源码就像是最顶级的执法规则,制定好了一切源生的编码规则,甚至为你提供了多种可选用的工具.那些拥有绝顶智慧的人为使用Java语言的人考虑到了几乎任何情况的使用场景,并为我们设计了这一整套JDK,简称为Java开发工具包.
虽然我们每天接触的更多的是偏向业务层的代码,源码看起来遥不可及,但是从今天起纠正你这种想法,因为你写的每一行代码背后都是源码在为你做支撑.好在Java是开源共享的,你只要随便从官网上下载一个Java版本,就可以阅读到它.
何况作为一个努力想摆脱码农头衔的软件工程师,怎么能没有好奇心去一探究竟源码的秘密.

二.走近源码

我这里以Java8版本作为演示,打开我的JDK路径,注意到里面有个src.zip压缩包
src
这个压缩包里面就是所有的源码文件了,我们打开看一下里面有哪些内容.
这里我解压完之后,放到了IDEA创建的一个新的java工程目录下
source
这5个文件夹就是java8的所有源码了,看着是不是挺少的.
这里我们主要关注java这个文件夹,其下能够看到许多我们平时经常使用的包名
package
是不是很熟悉呢,io,lang,math,util等等都是最基础也是最常使用的几个包文件了.

三.调试源码

平时我们经常对自己的业务代码进行调试走断点,那么我们也想对源码走断点调试具体该怎么操作呢.
首先,将之前的jdk路径修改为你解压src.zip后迁移到工程中的路径,这样你就可以对源码进行注释和修改了.
在Setting->Project Structure中,点开SDKs,并选择到Sourcepath,将默认的src.zip路径移除,并添加你目前项目中的源码文件夹
在这里插入图片描述
这样设置完毕后,我们所有的代码执行都会指向你现在配置的"私有源码".
设置到这里还不能满足启动,由于我们这里将源码加进来了,当我们执行代码进行编译的时候,IDEA就会提示你系统资源不足,因为IDEA默认的系统资源分配为700MB
所以我们这里打开Settings下的Compiler,设置Build process heap size,这里我设置成1700MB
BUild process
这个时候,我们写个简单的HashMap想查看HashMap的实现原理,会发现并没有进入到源码中,这是因为IDEA默认不进入源码调试,这里我们设置最后一步,打开Setting下的Debugger,设置Stepping,将Do not step into the classes选择去除
在这里插入图片描述
这个时候,我写了一个简单的Map存放,并加入了一个断点

public static void main(String[] args) {
    Map<String, Double> map = new HashMap<>();

    map.put("one", 0.1);
    map.put("two", 0.2);
    map.put("three", 0.3);
}

step into
点击step into,你就会发现我们能成功进入到项目工程中的源码了.
源码
跟随源码,你就能查看到具体的源码实现了,并且你也可以对源码进行一些更改或者加注释,这已经成为了你的私人源码.

三.总结

以上的源码学习步骤都是源于B站up主CodeShape的分享,我觉得很有学习的必要,毕竟每个Java开发者都需要与源码打交道,这是一种很好的学习源码方法,故做此博文以共享.

参考资料:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值