Lesen Sie den verdammten Quellcode ---- RTFM
Vor dem Quellcode gibt es keine Geheimnisse ---- Hou Jie
Dieses Projekt organisiert / zeichnet hauptsächlich das Verständnis und die Erfahrung beim Lesen JDK
Quellcode auf und dient nur als Referenz.
Das Projekt enthält mehrere Zweige. Der Hauptzweig heißt master
, der Testzweig heißt test
und der Quellcode-/Notizzweig ist nach JDK-X
benannt ( X ist die JDK-Version ).
Der master
erstellt gelegentlich Schnappschüsse von Quellcodenotizen und Testcode.
Der JDK-X
-Zweig speichert den Quellcode und die Notizen JDK
. Während des Lesevorgangs erzeugte Hinweise werden in Form von Kommentaren direkt in die Quellcodedatei geschrieben.
Der test
speichert Testcode, um das Verständnis zu erleichtern, und kann direkt ausgeführt werden.
OracleJDK
/ OpenJDK
11 auszuführen Sofort einsatzbereit. Klonen/laden Sie das Projekt lokal herunter und öffnen Sie es mit IntelliJ IDEA
.
Bitte wechseln Sie beim Lesen des Quellcodes zum JDK-X
Zweig. Es ist nicht erforderlich, JDK
zuzuordnen.
Wenn Sie den Quellcode testen, wechseln Sie bitte zum test
. Zu diesem Zeitpunkt müssen Sie OracleJDK
/ OpenJDK
verknüpfen.
Dieser Quellcode unterstützt keine direkte Kompilierung. Wenn Sie das gesamte JDK
Projekt vollständig kompilieren möchten, lesen Sie bitte das offizielle Tutorial zum Erstellen des JDK.
Sollte der Quellcode aufgrund fehlender einzelner Abhängigkeitsdateien einen Fehler melden, suchen Sie bitte bei Google nach dem entsprechenden JAR-Paket und importieren Sie es. Oder Sie können Feedback zu Github-Problemen hinterlassen.
Willkommen zum Austausch guter Ideen, Vorschläge und Meinungen zu Github-Problemen.
Seriennummer | Emoji | Was es in diesem Projekt bedeutet | Abkürzungszeichen |
---|---|---|---|
(0) | ? | Projekt initialisieren | :tada: |
(1) | Aktualisieren Sie die Dokumentation, einschließlich, aber nicht beschränkt auf README | :memo: | |
(2) | Neue Lesenotizen veröffentlichen (Hinweis 1) | :bulb: | |
(3) | Inkrementelle Aktualisierung der Lesenotizen | :sparkles: | |
(4) | ♻️ | Refactoring bezieht sich hauptsächlich auf die Änderung bestehender Lesehinweise. In seltenen Fällen wird der Quellcode geändert (Hinweis 2). | :recycle: |
(5) | ✏️ | Beim Korrekturlesen geht es hauptsächlich um die Korrektur von Tippfehlern, die Anpassung der Quellcode-Gruppierung, die Änderung des Quellcode-Schriftsatzes usw. | :pencil2: |
(6) | ✅ | Testdateien veröffentlichen | :white_check_mark: |
Hinweis 1:
Den aktuellen Lesefortschritt eines bestimmten Quellcodes entnehmen Sie bitte der Lesecodeliste_Sortieren nach Funktion.
Hinweis 2: Zu den Szenarien, die eine Änderung des Quellcodes beinhalten, gehören unter anderem:
Ändern Sie bedeutungslose Variablennamen in verständlichere Variablennamen.
Vervollständigung der geschweiften Klammern im Bereich der Steueranweisung;
Rekonstruieren Sie die Struktur der Steueranweisungen (z. B. die Aufteilung von if-Anweisungen und den Austausch von for/while);
Konvertierung zwischen for-Schleife und foreach-Schleife;
Teilen Sie die Aufrufkette auf, die zu lang und schwer zu lesen ist, und isolieren Sie die Zwischenprozesse.
Extrahieren Sie einen häufig auftretenden Vorgang in eine einzige Methode.
Teilen Sie mehrere Klassen der obersten Ebene in einer Datei in verschiedene Dateien auf (interne Klassen werden nicht aufgeteilt).
Konvertierung zwischen anonymen Klassen und nicht anonymen Klassen;
Konvertierung anonymer Klassen und Funktionsausdrücke;
Konvertierung zwischen Funktionsaufrufen und gewöhnlichen Aufrufen;Das Prinzip der Änderung lautet: So wenig wie möglich ändern, ohne die ursprüngliche Codelogik und die Ausführungsergebnisse zu ändern (Code mit Multithreading ist etwas verwirrend).
Der Zweck der Änderung besteht darin, die Lesbarkeit zu verbessern und das Einfügen von Notizen zu erleichtern
Oracle JDK
OpenJDK
Referenzquelle für emoji
in den Commit-Informationen:
Vollständige Emoji-Liste
Gitmoji