Heim  >  Artikel  >  Java  >  Warum verwenden wir nicht „new“, um Strings in Java zu erstellen?

Warum verwenden wir nicht „new“, um Strings in Java zu erstellen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-13 16:45:02621Durchsuche

Why Don't We Use 'new' to Create Strings in Java?

Strings sind Objekte in Java: Warum kein „Neues“ für die Erstellung?

Strings in Java sind Objekte, doch im Gegensatz zu anderen Objekten sind sie es werden üblicherweise ohne Verwendung des Schlüsselworts „new“ erstellt. Diese Praxis wirft die Frage auf, warum „new“ für die String-Erstellung nicht notwendig ist.

Grund für die Nichtverwendung von „new“: String-Internierung

Anstatt etwas Neues zu erstellen Jedes Mal, wenn ein String-Literal verwendet wird, führt Java einen Prozess durch, der als Internierung bezeichnet wird. Beim Internieren werden String-Literale in einem zentralen Pool gespeichert, dem sogenannten String-Pool. Wenn ein String-Literal gefunden wird, wird es mit dem String-Pool verglichen. Wenn bereits ein identisches Zeichenfolgenliteral vorhanden ist, wird ein Verweis auf die vorhandene Zeichenfolge zurückgegeben, anstatt ein neues Objekt zu erstellen.

Beispiel:

Bedenken Sie den folgenden Code:

String str1 = "Hello";
String str2 = "Hello";

In diesem Beispiel verweisen sowohl „str1“ als auch „str2“ auf dasselbe String-Objekt im String-Pool, obwohl sie separat erstellt wurden. Als Ergebnis wird „str1 == str2“ als wahr ausgewertet, was darauf hinweist, dass sie körperlich gleich sind.

Vorteil des Internierens:

Das Internieren optimiert die Leistung durch Reduzierung der Anzahl der erstellten String-Objekte, insbesondere für häufig verwendete Strings. Beispielsweise wird in einer Schleife, in der ein String-Literal mehrmals verwendet wird, nur ein String-Objekt erstellt, anstatt es bei jeder Iteration neu zu erstellen, was zu erheblichen Speichereinsparungen führt.

Erstellen von Strings mit „new“

Während Praktika der empfohlene Ansatz sind, ist es dennoch möglich, Strings mit „neu“ zu erstellen. Es ist jedoch wichtig zu beachten, dass dies dazu führen kann, dass mehrere String-Objekte für denselben String-Wert erstellt werden, was sich auf die Speichernutzung und Leistung auswirken kann.

Schlussfolgerung:

Das Fehlen von „new“ bei der String-Erstellung in Java ist auf die Verwendung von String-Internierung zurückzuführen. Interning verbessert die Leistung, indem es unnötige Objekterstellung reduziert und die Speichereffizienz fördert, was es zur bevorzugten Methode zum Erstellen von Zeichenfolgen macht.

Das obige ist der detaillierte Inhalt vonWarum verwenden wir nicht „new“, um Strings in Java zu erstellen?. 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