Es gibt zwei Möglichkeiten, ein String-Objekt in Java zu erstellen
String str = new String("Tutorials Point");
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.
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); } }
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!