All Projects → kangjianwei → Learningjdk

kangjianwei / Learningjdk

JDK源码阅读笔记

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Learningjdk

Jdk Source Analysis
JDK 源码分析
Stars: ✭ 186 (-78.37%)
Mutual labels:  source-code, jdk
Androidnote
Android study notes.
Stars: ✭ 2,700 (+213.95%)
Mutual labels:  source-code, study-notes
Android Notes
Android开发核心知识点笔记(不断更新中🔥)
Stars: ✭ 737 (-14.3%)
Mutual labels:  source-code, study-notes
Codespan
Beautiful diagnostic reporting for text-based programming languages.
Stars: ✭ 445 (-48.26%)
Mutual labels:  source-code
Viewpager Transformation
Why use dependencies when you create your own transformations for Viewpager ?
Stars: ✭ 463 (-46.16%)
Mutual labels:  source-code
Vue Analysis
Vue 源码注释版 及 Vue 源码详细解析
Stars: ✭ 743 (-13.6%)
Mutual labels:  source-code
Ufodiff
UFO source file diff application
Stars: ✭ 23 (-97.33%)
Mutual labels:  source-code
Marktext
📝A simple and elegant markdown editor, available for Linux, macOS and Windows.
Stars: ✭ 22,894 (+2562.09%)
Mutual labels:  source-code
Open Source Projects
A collection of my personal Programming Projects
Stars: ✭ 16 (-98.14%)
Mutual labels:  source-code
Aosp
这是一个连载的博文系列,我将持续为大家提供尽可能透彻的Android源码分析
Stars: ✭ 693 (-19.42%)
Mutual labels:  source-code
Ugrep
🔍NEW ugrep v3.1: ultra fast grep with interactive query UI and fuzzy search: search file systems, source code, text, binary files, archives (cpio/tar/pax/zip), compressed files (gz/Z/bz2/lzma/xz/lz4), documents and more. A faster, user-friendly and compatible grep replacement.
Stars: ✭ 626 (-27.21%)
Mutual labels:  source-code
Vgrep
vgrep - a user-friendly pager for grep
Stars: ✭ 492 (-42.79%)
Mutual labels:  source-code
Graudit
grep rough audit - source code auditing tool
Stars: ✭ 747 (-13.14%)
Mutual labels:  source-code
Quelpa
Build and install your Emacs Lisp packages on-the-fly directly from source
Stars: ✭ 455 (-47.09%)
Mutual labels:  source-code
Instabiosquotes
Completely FREE Instagram Bio and Quotes Android App with latest collection of Instagram Bio and Instagram quotes for setting as your status.
Stars: ✭ 17 (-98.02%)
Mutual labels:  source-code
Swagger Spring Boot
swagger-spring-boot-starter 是一款建立在swagger基础之上的工具包,利用SpringBoot自动装配的特性,简化了传统swagger的繁琐配置
Stars: ✭ 438 (-49.07%)
Mutual labels:  jdk
K8s Source Code Analysis
《k8s-1.13版本源码分析》
Stars: ✭ 800 (-6.98%)
Mutual labels:  source-code
Dasarpemrogramangolang
📖 Source Code E-book Dasar Pemrograman Golang
Stars: ✭ 625 (-27.33%)
Mutual labels:  source-code
Jdk
Source code for multiple JDK versions(1.6/1.7/1.8/1.9/10/11/12/13/14 JDK's src.zip), Only for learning; "rt_debug.jar" can be used for debugging.
Stars: ✭ 551 (-35.93%)
Mutual labels:  jdk
Sloc
simple tool to count SLOC (source lines of code)
Stars: ✭ 841 (-2.21%)
Mutual labels:  source-code

JDK源码阅读笔记

Read The Fucking Source Code  ---- RTFM

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

项目介绍

本项目主要整理/记录阅读JDK源码时的理解与体会,仅供参考。

项目中包含多个分支,主分支命名为master,测试分支命名为test,源码/笔记分支以JDK-XX是JDK版本)命名。

  • master分支不定期汇总源码笔记与测试代码的快照。

  • JDK-X分支存放JDK源码笔记。阅读过程中产生的笔记以注释的形式直接写在源码文件中。

  • test分支存放辅助理解的测试代码,可直接运行。

    • 注1:建议在OracleJDK/OpenJDK 11的环境下运行测试文件
    • 注2:不会为所有类/接口都写测试文件,有的是因为太简单,有的是因为已写过大量类似的,还有的是因为理解不到位

使用说明

  1. 开箱即用。将项目克隆/下载到本地,然后使用IntelliJ IDEA打开即可。

  2. 阅读源码时请切换到JDK-X分支,且不需要关联JDK

    测试源码时请切换到test分支,此时需要关联OracleJDK/OpenJDK

  3. 该源码不支持直接编译。如想完整编译整个JDK项目,请参考官方教程Building the JDK

  4. 如果源码因缺失个别依赖文件而报错,请到谷歌搜索相关的jar包导入即可。或者可在Github Issues提出反馈。

  5. 欢迎在Github Issues交流好的想法、建议、意见。

Commit图例

序号 emoji 在本项目中的含义 简写标记
(0) 🎉 初始化项目 🎉
(1) 📝 更新文档,包括但不限于README 📝
(2) 💡 发布新的阅读笔记 (注1) 💡
(3) 增量更新阅读笔记
(4) ♻️ 重构,主要指修改已有的阅读笔记,极少情形下会修改源码 (注2) ♻️
(5) ✏️ 校对,主要指更正错别字、调整源码分组、修改源码排版等 ✏️
(6) 发布测试文件

注1:

关于某个源码当前的阅读进度,请参考已阅代码清单_按功能排序

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

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

修改的原则是:尽量少地修改,且不改变原有的代码逻辑与运行结果(涉及到多线程的代码有些迷)
修改的目的是:增强可读性,以及便于插入笔记

相关链接

Oracle JDK

Open JDK

脚注

Commit信息中的emoji参考来源:

附录

已阅代码清单_按功能排序

已阅代码清单_按名称排序

测试文件清单

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].