Lea el puto código fuente ---- RTFM
Frente al código fuente, no hay secretos ---- Hou Jie
Este proyecto organiza / registra principalmente la comprensión y la experiencia al leer el código fuente JDK
, solo como referencia.
El proyecto contiene varias ramas. La rama principal se llama master
, la rama de prueba se llama test
y la rama de código fuente/notas lleva el nombre de JDK-X
( X es la versión de JDK ).
La rama master
ocasionalmente compila instantáneas de notas del código fuente y código de prueba.
La rama JDK-X
almacena el código fuente y las notas del JDK
. Las notas generadas durante el proceso de lectura se escriben directamente en el archivo de código fuente en forma de comentarios .
La rama test
almacena el código de prueba para facilitar la comprensión y se puede ejecutar directamente.
OracleJDK
/ OpenJDK
11 Listo para usar nada más sacarlo de la caja. Clona/descarga el proyecto localmente y ábrelo con IntelliJ IDEA
.
Cambie a la rama JDK-X
cuando lea el código fuente y no es necesario asociar JDK
.
Al probar el código fuente, cambie a la rama test
. En este momento, debe asociar OracleJDK
/ OpenJDK
.
Este código fuente no admite la compilación directa. Si desea compilar completamente todo el proyecto JDK
, consulte el tutorial oficial Construyendo el JDK.
Si el código fuente informa un error debido a que faltan archivos de dependencia individuales, busque el paquete jar correspondiente en Google e impórtelo. O puede dejar comentarios sobre problemas de Github.
Bienvenido a intercambiar buenas ideas, sugerencias y opiniones sobre problemas de Github.
número de serie | emojis | Qué significa en este proyecto | marca de abreviatura |
---|---|---|---|
(0) | ? | Inicializar proyecto | :tada: |
(1) | Actualizar la documentación, incluido, entre otros, README | :memo: | |
(2) | Publicar nuevas notas de lectura (Nota 1) | :bulb: | |
(3) | Actualización incremental de notas de lectura. | :sparkles: | |
(4) | ♻️ | La refactorización se refiere principalmente a modificar las notas de lectura existentes. En casos excepcionales, se modificará el código fuente (Nota 2). | :recycle: |
(5) | ✏️ | La revisión se refiere principalmente a corregir errores tipográficos, ajustar la agrupación del código fuente, modificar la composición tipográfica del código fuente, etc. | :pencil2: |
(6) | ✅ | Publicar archivos de prueba | :white_check_mark: |
Nota 1:
Para conocer el progreso de lectura actual de un determinado código fuente, consulte la Lista de códigos de lectura_Ordenar por función.
Nota 2: Los escenarios que implican modificación del código fuente incluyen, entre otros:
Modifique los nombres de variables sin sentido por nombres de variables más comprensibles;
Finalización de llaves en el alcance de la declaración de control;
Reconstruir la estructura de la declaración de control (como la división de declaraciones if y el intercambio de for/ while);
Conversión entre bucle for y bucle foreach;
Divida la cadena de llamadas que es demasiado larga y difícil de leer y aísle los procesos intermedios;
Extraiga una operación frecuente en un solo método;
Divida varias clases de nivel superior en un archivo en archivos diferentes (las clases internas no se dividen);
Conversión entre clases anónimas y clases no anónimas;
Conversión de clases anónimas y expresiones de funciones;
Conversión entre llamadas funcionales y llamadas ordinarias;El principio de modificación es: modificar lo menos posible sin cambiar la lógica del código original ni ejecutar los resultados (el código que involucra subprocesos múltiples es un poco confuso)
El objetivo de la modificación es mejorar la legibilidad y facilitar la inserción de notas.
JDK de Oracle
AbiertoJDK
Fuente de referencia de emoji
en información de confirmación:
Lista completa de emojis
gitmoji