Skip to content

F1ncyJ/jdk8-source-reading

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

为何有这个项目

目前团队新人较多,或者说即使工作有小几年的同学写起代码来也缺少一股"正气",想通过阅读优秀的代码来改善这种情况,Spring、Mybatis等代码都过于复杂,设计到过多的设计模式和经验写法,JDK的写法很纯粹且是大家平常用的最多的。

主要内容是为各个JDK源码编写注释、示例用法、原理解析文档等,方便大家理解JDK的Java源代码部分。

一个人的精力有限,欢迎大家一起完善。

源码管理

项目采用原始的管理方式,没有采用maven、gradle等管理,照顾新来的同学。 项目托管在github上,原始地址是:https://github.com/charpty/jdk8-source-reading, 大家可以fork下来然后pr

JDK版本

基于团队目前正在使用JDK1.8_121,当前公司生产环境主要运行的JDK就是这个版本。这份源码是从JDK附带的源码中拷贝出来的,目录结构很清晰

目录 用途 说明
com.sun 与sun JDK强相关的实现以及其他公司实现 非标,暂不读
java 日常所用各类 精读、细读部分
javax 对于安全、远程通信、图形界面的扩展 可了解
launcher 日常所用的编译工具、虚拟机启动工具 C语言编写,暂不读
org 第三方开源标准 用到相关标准时可以了解下

阅读说明

  1. 找到自己想看的具体Java源文件,其中应该有相应的注释说明(主要是类注释和方法注释)
  2. 在test的相同层级目录下,有可能存在相应的DEMO源代码、原理解析等文件

第三方编写说明(PR)

  1. 在源码上不能改动代码只能写注释。

  2. 想要写些测试例子或者文本记录请按照同等级目录+要记录的事情的目录写在test目录下。
    例如:想写些HashMap的分析,首先HashMap在java.util包下,那么在test下也建立一个java.util的包,然后再建一个叫做hashmap的包,将要记录的txt文件、java代码文件、编译class文件、说明md文件等都放置在此。

  3. 想编写的模块他人已写的,可以进行查看学习并进行补充,在源码目录下将一个package-info.java文件用于说明哪些文件已经被自己编写源码解析说明,格式很简单:

    文件名 编写注释人 时间
    XXXX.java 王XXX,李XX 2017-9-12

    直接写在package-info.java的doc注释里即可,当然并不是说一个文件只能一个人写,只是两个人写有可能出现冲突,自行商量好的话也不会有大问题。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.8%
  • Other 0.2%