Lisez le putain de code source ---- RTFM
Il n'y a pas de secrets devant le code source ---- Hou Jie
Ce projet organise/enregistre principalement la compréhension et l'expérience lors de la lecture du code source JDK
, à titre de référence uniquement.
Le projet contient plusieurs branches. La branche principale est nommée master
, la branche test est nommée test
et la branche code source/notes porte le nom de JDK-X
( X est la version du JDK ).
La branche master
compile occasionnellement des instantanés de notes de code source et de code de test.
La branche JDK-X
stocke le code source et les notes JDK
. Les notes générées lors du processus de lecture sont écrites directement dans le fichier de code source sous forme de commentaires .
La branche test
stocke le code de test pour faciliter la compréhension et peut être exécutée directement.
OracleJDK
/ OpenJDK
11 Prêt à l'emploi dès la sortie de la boîte. Clonez/téléchargez le projet localement et ouvrez-le avec IntelliJ IDEA
.
Veuillez passer à la branche JDK-X
lors de la lecture du code source, et il n'est pas nécessaire d'associer JDK
.
Lors du test du code source, veuillez passer à la branche test
. À ce stade, vous devez associer OracleJDK
/ OpenJDK
.
Ce code source ne prend pas en charge la compilation directe. Si vous souhaitez compiler complètement l'intégralité du projet JDK
, veuillez vous référer au tutoriel officiel Construire le JDK.
Si le code source signale une erreur due à des fichiers de dépendance individuels manquants, veuillez rechercher le package jar correspondant sur Google et importez-le. Ou vous pouvez laisser des commentaires sur les problèmes de Github.
Bienvenue pour échanger de bonnes idées, suggestions et opinions sur les problèmes Github.
numéro de série | émoticône | Ce que cela signifie dans ce projet | marque d'abréviation |
---|---|---|---|
(0) | ? | Initialiser le projet | :tada: |
(1) | Mettre à jour la documentation, y compris, mais sans s'y limiter, le fichier README | :memo: | |
(2) | Publier de nouvelles notes de lecture (Note 1) | :bulb: | |
(3) | Mise à jour incrémentielle des notes de lecture | :sparkles: | |
(4) | ♻️ | Le refactoring fait principalement référence à la modification des notes de lecture existantes. Dans de rares cas, le code source sera modifié (Remarque 2). | :recycle: |
(5) | ✏️ | La relecture fait principalement référence à la correction des fautes de frappe, à l'ajustement du regroupement du code source, à la modification de la composition du code source, etc. | :pencil2: |
(6) | ✅ | Publier des fichiers de tests | :white_check_mark: |
Remarque 1 :
Pour connaître la progression actuelle de la lecture d'un certain code source, veuillez vous référer à Read Code List_Sort by Function.
Remarque 2 : Les scénarios impliquant une modification du code source incluent, sans s'y limiter :
Modifiez les noms de variables dénués de sens en noms de variables plus compréhensibles ;
Complétion des accolades sur la portée de l'instruction de contrôle ;
Reconstruire la structure des instructions de contrôle (telle que le fractionnement des instructions if et l'échange de for/while) ;
Conversion entre la boucle for et la boucle foreach ;
Diviser la chaîne d'appels trop longue et difficile à lire, et isoler les processus intermédiaires ;
Extrayez une opération fréquente en une seule méthode ;
Divisez plusieurs classes de niveau supérieur dans un fichier en différents fichiers (les classes internes ne sont pas divisées) ;
Conversion entre classes anonymes et classes non anonymes ;
Conversion de classes anonymes et d'expressions de fonctions ;
Conversion entre appels fonctionnels et appels ordinaires ;Le principe de la modification est le suivant : modifier le moins possible sans changer la logique du code d'origine et les résultats d'exécution (le code impliquant le multi-threading est un peu déroutant)
Le but de la modification est d'améliorer la lisibilité et de faciliter l'insertion de notes
OracleJDK
OuvrirJDK
Source de référence des emoji
dans les informations de validation :
Liste complète des emojis
gitmoji