Heim >Java >javaLernprogramm >Warum haben kompilierte Java-Klassen Dollarzeichen?

Warum haben kompilierte Java-Klassen Dollarzeichen?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-26 18:54:291018Durchsuche

Why Do Java Compiled Classes Have Dollar Signs?

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:

  • Find$1.class
  • Find$2.class
  • Find$3.class
  • Find. Klasse

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:

  • OuterClass.class
  • OuterClass$InnerClass.class
  • OuterClass$1.class

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn