Heim > Java > javaLernprogramm > Warum können Sie in Java Zeichenfolgen ohne das Schlüsselwort „new' erstellen?

Warum können Sie in Java Zeichenfolgen ohne das Schlüsselwort „new' erstellen?

Barbara Streisand
Freigeben: 2024-11-16 21:51:03
Original
575 Leute haben es durchsucht

Why Can You Create Strings in Java Without the

Strings: Objekte ohne das Schlüsselwort „new“

Java-Strings sind tatsächlich Objekte, dennoch sind sie insofern einzigartig, als sie ohne das Schlüsselwort „new“ erstellt werden können das Schlüsselwort „neu“. Dies wirft die Frage auf: Warum?

Anfangs scheinen Strings wie andere Objekte erstellt zu werden:

Object obj = new Object();
Nach dem Login kopieren

Strings werden jedoch nicht auf diese Weise initialisiert:

String str = "Hello World";
Nach dem Login kopieren

Internierung von String-Literalen

Um diese Diskrepanz zu verstehen, müssen wir uns mit dem Konzept der String-Internierung befassen. Internierung bedeutet, dass sich jedes Vorkommen eines bestimmten String-Literals (z. B. „abcd“) auf eine einzelne Instanz dieses Strings bezieht, anstatt jedes Mal eine neue Instanz zu erstellen.

In Java werden Strings mit doppelten Anführungszeichen deklariert werden als Literale behandelt und automatisch interniert. Dies bedeutet, dass:

String a = "abcd";
String b = "abcd";
Nach dem Login kopieren

zu Folgendem führt:

a == b; // True
Nach dem Login kopieren

String-Erstellung mit „new“

Obwohl die Internierung für String aktiviert ist Literale können Sie weiterhin Zeichenfolgen mit dem Schlüsselwort „new“ erstellen:

String a = new String("abcd");
String b = new String("abcd");
Nach dem Login kopieren

In diesem Fall ist jedoch Folgendes möglich:

a == b; // False
Nach dem Login kopieren

Vorteile von Interning

Das Internieren von Zeichenfolgenliteralen bietet mehrere Vorteile:

  • Leistung: Durch die Verwendung einer einzelnen Instanz für jede eindeutige Zeichenfolge reserviert die JVM weniger Speicher und leistet weniger weniger Objekterstellung.
  • Speichereinsparungen: Interning stellt sicher, dass für jede eindeutige Zeichenfolge nur eine einzige Instanz vorhanden ist, wodurch der Speicherbedarf reduziert wird.
  • Gleichheitsprüfung: Die Verwendung von „==" für String-Literale ist gültig, da dadurch die physische Gleichheit überprüft wird, die durch das Internieren gewährleistet ist.

Hinweis: Es wird immer empfohlen, . equal()-Methode zum Vergleichen von Zeichenfolgen, auch für interne Zeichenfolgen, da sie auf Inhaltsgleichheit prüft.

Das obige ist der detaillierte Inhalt vonWarum können Sie in Java Zeichenfolgen ohne das Schlüsselwort „new' erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage