Heim  >  Artikel  >  Java  >  Warum können in Java Strings ohne „new“ erstellt werden?

Warum können in Java Strings ohne „new“ erstellt werden?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-18 06:32:02168Durchsuche

Why Can Strings be Created Without 'new' in Java?

String-Erstellung in Java: Enthüllung der Abwesenheit von „new“

Während Java normalerweise das Schlüsselwort „new“ verwendet, um Objekte zu instanziieren, werden Strings verwendet weisen eine merkwürdige Abweichung von dieser Norm auf. Im Gegensatz zu anderen Objekten können Zeichenfolgen erstellt werden, ohne „new“ aufzurufen. Dies wirft Fragen auf: Warum gibt es diese Ausnahme? Ist es immer noch möglich, „neu“ bei der String-Erstellung zu verwenden?

Den Internierungsmechanismus verstehen

Zusätzlich zu den vorherigen Erklärungen ist es wichtig, den verwendeten Internierungsmechanismus zu erkennen für String-Literale („abcd“, aber nicht new String(„abcd“) in Java). Dieser Mechanismus stellt sicher, dass jede Instanz von „abcd“ auf eine einzelne String-Instanz verweist, wodurch verhindert wird, dass bei wiederholten Referenzen neue Instanzen erstellt werden. Als Ergebnis:

String a = "abcd";
String b = "abcd";

a == b; //True

Vergleich mit nicht internierten Strings

Im Gegensatz dazu sind die resultierenden Objekte beim Erstellen von Strings mit „new“ unterschiedliche Instanzen:

String a = new String("abcd");
String b = new String("abcd");

a == b; // False

Überlegungen zur Leistung

Das Internieren von String-Literalen hat tiefgreifende Auswirkungen auf die Leistung. Zeichenfolgen kommen im Code oft mehrfach vor und durch die Internierung entfällt die Notwendigkeit, sie wiederholt zu instanziieren. Diese Optimierung erweist sich besonders in folgenden Szenarios als vorteilhaft:

for (int i = 0; i < 10; i++) {
  System.out.println("Next iteration");
}

Ohne Internierung würde die Zeichenfolge „Nächste Iteration“ 10 Instanziierungen erfordern, während Internierung eine einzige Instanziierung gewährleistet.

Das obige ist der detaillierte Inhalt vonWarum können in Java Strings ohne „new“ erstellt werden?. 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