Heim >Java >javaLernprogramm >Warum haben kompilierte Java-Klassen Dollarzeichen?
Kompilierte Java-Klassen mit Dollarzeichen
Java-Programmierer stoßen in ihren kompilierten Klassendateien häufig auf eine eigenartige Namenskonvention. Einige Klassen weisen ein seltsames Muster ihres Klassennamens auf, gefolgt von einem Dollarzeichen und einer Zahl. Beispielsweise könnten Dateien wie diese angezeigt werden:
Eintauchen in die Sache
Entgegen der landläufigen Meinung löst die Größe der Klasse dieses Verhalten nicht aus. Die Antwort liegt in inneren Klassen. Wenn eine Klasse innere Klassen enthält, generiert der Compiler separate Klassendateien für diese inneren Klassen. Der Dateiname folgt dem Muster:
OuterClass.class OuterClass$InnerClass.class
Anonyme innere Klassen
Anonyme innere Klassen, die ohne einen benutzerdefinierten Namen definiert werden, werden Nummern zugewiesen. Dies erklärt „Find$1.class“ und ähnliche Dateinamen.
Beispiel
Betrachten Sie den folgenden Codeausschnitt:
public class OuterClass { class InnerClass { } Serializable anonymous = new Serializable() { }; }
Der Compiler generiert die folgenden Klassendateien:
Anonyme Klassen in Betracht gezogen?
Die Verwendung anonymer innerer Klassen wurde kontrovers diskutiert. Einige halten es für einen Code-Geruch, während andere argumentieren, dass es in bestimmten Szenarien angemessen sei. Letztlich basiert die Entscheidung für deren Einsatz auf konkreten Designanforderungen.
Das obige ist der detaillierte Inhalt vonWarum haben kompilierte Java-Klassen Dollarzeichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!