Giter Site home page Giter Site logo

jdk8-source-reading's Introduction

为何有这个项目 ?

目前团队新人较多,或者说即使工作有小几年的同学写起代码来也缺少一股"正气",想通过阅读优秀的代码来改善这种情况,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注释里即可,当然并不是说一个文件只能一个人写,只是两个人写有可能出现冲突,自行商量好的话也不会有大问题。

jdk8-source-reading's People

Contributors

charpty avatar mynameisrq avatar

Watchers

James Cloos avatar wansweet avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.