Heim >Java >javaLernprogramm >## Was sind Dollarzeichen in kompilierten Java-Klassen und was bedeuten sie?
Beim Untersuchen von JAR-Dateien, die aus Eclipse generiert wurden, stoßen Benutzer gelegentlich auf Klassen mit Dollarzeichen ($), gefolgt von Zahlen. Dieses Phänomen, das sich besonders in größeren Klassen bemerkbar macht, hat zu der Frage geführt, ob es auf mehrere kompilierte Versionen der Klasse hinweist.
Das Vorhandensein von Dollarzeichen in Klassennamen weist auf innere Klassen hin . Dies sind zusätzliche Klassen, die innerhalb äußerer Klassen definiert sind. Der Compiler weist jeder inneren Klasse eine eindeutige Nummer zu, um sie zu unterscheiden.
Zum Beispiel definiert der folgende Code eine äußere Klasse mit zwei verschachtelten Klassen:
<code class="java">public class Find { private class InnerClass1 {} private class InnerClass2 {} }</code>
Beim Kompilieren die folgende Klasse Dateien werden generiert:
Zusätzlich, Anonyme innere Klassen, also Klassen, die in einer einzigen Anweisung deklariert und instanziiert werden, werden ebenfalls mit Dollarzeichen gefolgt von Zahlen dargestellt.
<code class="java">public class Main { public static void main(String[] args) { new Thread() { // Anonymous inner class // Override run() method }.start(); } }</code>
In diesem Beispiel führt die anonyme innere Klasse zu einer Klassendatei mit dem Namen Main$1.class.
Entgegen der ursprünglichen Annahme bestimmt die Größe der äußeren Klasse nicht, ob innere Klassen generiert werden. Innere Klassen werden ausschließlich auf der Grundlage des Vorhandenseins verschachtelter Klassen generiert, unabhängig von der Größe der äußeren Klasse.
Das obige ist der detaillierte Inhalt von## Was sind Dollarzeichen in kompilierten Java-Klassen und was bedeuten sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!