目前团队新人较多,或者说即使工作有小几年的同学写起代码来也缺少一股"正气",想通过阅读优秀的代码来改善这种情况,Spring、Mybatis等代码都过于复杂,设计到过多的设计模式和经验写法,JDK的写法很纯粹且是大家平常用的最多的。
主要内容是为各个JDK源码编写注释、示例用法、原理解析文档等,方便大家理解JDK的Java源代码部分。
一个人的精力有限,欢迎大家一起完善。
项目采用原始的管理方式,没有采用maven、gradle等管理,照顾新来的同学。
项目托管在github上,原始地址是:https://github.com/charpty/jdk8-source-reading, 大家可以fork
下来然后pr
。
基于团队目前正在使用JDK1.8_121,当前公司生产环境主要运行的JDK就是这个版本。这份源码是从JDK附带的源码中拷贝出来的,目录结构很清晰
目录 | 用途 | 说明 |
---|---|---|
com.sun | 与sun JDK强相关的实现以及其他公司实现 | 非标,暂不读 |
java | 日常所用各类 | 精读、细读部分 |
javax | 对于安全、远程通信、图形界面的扩展 | 可了解 |
launcher | 日常所用的编译工具、虚拟机启动工具 | C语言编写,暂不读 |
org | 第三方开源标准 | 用到相关标准时可以了解下 |
- 找到自己想看的具体Java源文件,其中应该有相应的注释说明(主要是类注释和方法注释)
- 在test的相同层级目录下,有可能存在相应的DEMO源代码、原理解析等文件
-
在源码上不能改动代码只能写注释。
-
想要写些测试例子或者文本记录请按照同等级目录+要记录的事情的目录写在test目录下。
例如:想写些HashMap
的分析,首先HashMap在java.util
包下,那么在test下也建立一个java.util
的包,然后再建一个叫做hashmap的包,将要记录的txt文件、java代码文件、编译class文件、说明md文件等都放置在此。 -
想编写的模块他人已写的,可以进行查看学习并进行补充,在源码目录下将一个
package-info.java
文件用于说明哪些文件已经被自己编写源码解析说明,格式很简单:文件名 编写注释人 时间 XXXX.java 王XXX,李XX 2017-9-12 直接写在
package-info.java
的doc注释里即可,当然并不是说一个文件只能一个人写,只是两个人写有可能出现冲突,自行商量好的话也不会有大问题。