Heim > Java > javaLernprogramm > Warum werden String-Literale in Java im String-Konstantenpool gespeichert?

Warum werden String-Literale in Java im String-Konstantenpool gespeichert?

WBOY
Freigeben: 2023-09-11 21:17:02
nach vorne
792 Leute haben es durchsucht

Warum werden String-Literale in Java im String-Konstantenpool gespeichert?

Es gibt zwei Möglichkeiten, ein String-Objekt in Java zu erstellen

  • Verwendung des neuen Operators
String str = new String("Tutorials Point");
Nach dem Login kopieren
  • Verwendung eines String-Literals
String str = "Tutorials Point";
Nach dem Login kopieren

Immer wenn wir new String() in Java aufrufen, wird ein Objekt erstellt Heap-Speicher, und das String-Literal wird in den String Constant Pool (SCP) verschoben.

Für Objekte verwendet JVM SCP, was für eine effiziente Speicherverwaltung in Java sorgt. Im Gegensatz zu anderen Java-Objekten verwalten sie keine String-Objekte im Heap-Bereich, sondern führen einen String-Konstantenpool ein. Ein wichtiges Merkmal des String-Konstantenpools besteht darin, dass nicht dasselbe String-Objekt erstellt wird, wenn bereits eine String-Konstante im Pool vorhanden ist.

Beispiel

public class SCPDemo {
   public static void main (String args[]) {
      String s1 = "Tutorials Point";
      String s2 = "Tutorials Point";
      System.out.println("s1 and s2 are string literals:");
      System.out.println(s1 == s2);
      String s3 = new String("Tutorials Point");
      String s4 = new String("Tutorials Point");
      System.out.println("s3 and s4 with new operator:");
      System.out.println(s3 == s4);
   }
}
Nach dem Login kopieren

Ausgabe

s1 and s2 are string literals:
true
s3 and s4 with new operator:
false
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum werden String-Literale in Java im String-Konstantenpool gespeichert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage