一言不合就开始搞JDK源码

Posted 平哥之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一言不合就开始搞JDK源码相关的知识,希望对你有一定的参考价值。

Java是一门面向对象的编程语言,那什么是面向对象呢,下面将是历史上最通俗易懂的解释了,请看下图:

哈哈,解释的够清楚的了吧。闪一言不合就开始搞JDK源码


从源码学编程的好处

学Java编程时,最好同时看一些Java的源码,即JDK的底层源码,尽量做到知其然知其所以然,这样一步一步打牢基础了,后面学习一些Java的高级功能时会很得心应手,遇到问题了也知道哪里出了问题,这就是大佬和小白的区别,声明一下我还是小白一枚,正在往大佬的路上发展,目前看来遥遥无期,对自己说声,继续加油你个帅小伙子一言不合就开始搞JDK源码


获得JDK源码

想看JDK的底层源码,首先得下载到源码,不过JDK源码在安装JDK时就下载好了(JDK自带的),在JDK的根目录里,文件名为“src.zip” ,如下图。

一言不合就开始搞JDK源码


在IDEA中创建JDK源码项目

为什么把JDK源码配置到IDEA中呢,因为方便自己去阅读、注释、调试等。同时压缩格式的源码文件在JDK目录中是只读格式,不能修改,也不能注释,这怎么能忍。那就单独创建一个项目,把源码解压进去,进行研究。

(1)在IDEA中创建一个Java项目,我给项目命名为“OracleJDK1.8Src”,可以根据自己习惯命名。

一言不合就开始搞JDK源码

(2)创建保存JDK源码的文件夹,并把源码解压进去。此处一定要切记,要单独新建一个和Java项目src目录同级的目录,因为IDEA默认会编译src目录中的所有源码,如果你把JDK源码直接解压到src目录中,编译时你的电脑有可能被卡死哦。

创建一个存放JDK源码的目录“JDKSrc”,如下图。

一言不合就开始搞JDK源码

然后把JDK根目录的源码压缩文件src.zip解压到此目录即可。

解压后如下图。

一言不合就开始搞JDK源码

至此源码项目已经创建好了,但要想让IDEA指向解压出来的源码位置,必须修改IDEA对源码的指向。

(3)修改IDEA对源码的指向

先进入到 File->Project Structure->SDKs->Sourcepath,然后先把指向“src.zip”源码的那个路径删掉,删除方法为,选中那个路径,然后点左下角的减号即可。然后再点左下角的加号新建一个源码路径,路径选择刚刚创建好的那个Java项目,注意路径指到“JDKSrc”目录即可。结果如下图。

一言不合就开始搞JDK源码


现在就可以大胆放心的研究JDK源码了,可以修改,也可以加中文注释,总之一切由你决定,可以对它为所欲为了。

(4)在IDEA中再修改一个进行debug时的小配置。

先进入到 File->Settings->Build, Execution, Deployment->Debugger->Stepping

把Do not step into the classes 选项前的对勾去掉,使其处于未选中状态,如果不把这个选项关掉,当你debug代码时,就不能进入到其它的类内部,去掉勾选就可以了。结果如下图。


应该阅读哪些JDK源码包

JDK源码包里的内容并不是都要读完,如果你想读完我也不拦你,而是阅读其中的重要的部分就行了。重点阅读:

(1)java.lang  此包包含Java基础语法,如各种包装类、Object基类等。

(2)java.util  此包包含Java的各种工具类,如集合类。同时这个包里有个很牛B的包,JUC(java.util.concurrent的缩写)并发包,如果你还不知道此包,那请你再好好学学基础。

(3)java.nio 此包包含非阻塞IO代码。Netty框架就是基于它做的。

当然其它的包也可以读读,如java.time,java.io等。


好了,终于写完了,睡觉。







以上是关于一言不合就开始搞JDK源码的主要内容,如果未能解决你的问题,请参考以下文章

由Dubbo路由引发的一言不合就看源码

由Dubbo路由引发的一言不合就看源码

面试官:来说说Tomcat的启动过程是什么样子的

为了彻底搞懂 hashCode,我连 JDK 的源码都没放过(建议收藏)

看起来是线程池的BUG,但是我认为是源码设计不合理

JDK源码那些事儿之并发ConcurrentHashMap上篇