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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBnach vorne
2023-09-11 21:17:02850Durchsuche

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");
  • Verwendung eines String-Literals
String str = "Tutorials Point";

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);
   }
}

Ausgabe

s1 and s2 are string literals:
true
s3 and s4 with new operator:
false

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen

In Verbindung stehende Artikel

Mehr sehen