GithubHelp home page GithubHelp logo

openjdk-11's Introduction

OpenJDK-11

Read The Fucking Source Code  ---- RTFM

源码面前,了无秘密  ---- 侯捷

项目介绍

OpenJDK-11源码,主要用来记录阅读源码的笔记与体会,可供阅读学习使用。

  • src目录存放OpenJDK-11源码。阅读过程中产生的笔记以注释的形式直接写在源码文件中。
  • test目录存放源码阅读过程中写的一些测试文件,使用时可将相关文件复制到新建项目中。

源码版本

openjdk version "11" 2018-09-25

OpenJDK Runtime Environment 18.9 (build 11+28)

OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

使用说明

  1. 该源码主要除了包括src.zip里提供的源码,此外还包括一部分未公开的源码。

    该源码不支持直接编译。如想完整编译整个OpenJDK项目,请自行到OpenJDK项目官网下载完整的工具链。

  2. 此源码与Oracle JDK源码并非完全一致。

    Oracle JDK仅开源了一部分代码。想深入学习JDK的话建议阅读此源码。

  3. 源码原本采用了JDK 9之后的module模块系统组织,此处修改为熟悉的包组织形式,以便阅读。

  4. 因为本源码已经包含了OpenJDK中绝大多数公开的源码,所以不建议再为此项目重复关联JDK。

  5. 个别源码在IDE中打开后可能会显示[错误]信息,这一般是因为某个源文件异常或缺失而导致的。对此,解决方案有两个:

    • 如果缺失部分影响到其他方法的理解,请自行到Google搜索相关源文件放到项目中合适的位置,或作为依赖库关联到项目中,比如部分源码需要关联Junit4测试库。
    • 如果仅仅是因为显示的异常信息造成了视觉上的干扰,请在IDE中自行关闭或切换[错误]信息的显示方式即可。
    • 极少情况下,是因为代码本身的语法问题,这时需要进行修正。
  6. 欢迎在Issues反馈好的想法、建议、意见。

Commit图例

序号 emoji 在本项目中的含义
(0) 🎉 初始化项目
(1) 📝 更新文档,包括但不限于README、.gitignore
(2) 💡 发布新的阅读笔记 (注1)
(3) 记录新特性
(4) ♻️ 重构代码,主要是修改之前的阅读笔记,极少情形下会修改源码 (注2)
(5) ✏️ 更正错别字、调节不合理的分组、修改源码排版、目录结构等
(6) 发布测试文件

注1:

使用标记 💡 统一替换旧标记 💡|💡🤡|🚧✨|🚧💬
关于某个源码当前的阅读完成度,参见已阅代码清单_按功能排序

注2:涉及到修改源码的场景,包括但不限于:

修改无意义的形参名为更易懂的形参名;
修改控制语句结构或在控制语句作用域上添加花括号;
修改匿名类为非匿名类;
拆分过长且难读的调用链,将中间过程单独摘出来;
提取频繁出现的某段操作为单个方法;
将一个文件内的多个类拆分到不同的文件中(内部类不拆分);
函数式调用与普通调用的转换;
for循环和foreach循环的转换;

修改的原则是:修改量极少,且不改变原有的逻辑与结果
修改的目的是:仅为增强可读性

相关链接

OpenJDK-11官网

OpenJDK存档-第三方网站

脚注

Commit信息中的emoji参考来源:

附录

openjdk-11's People

Contributors

kangjianwei avatar

Stargazers

gxx9203 avatar

Watchers

James Cloos 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.