มีสองวิธีในการสร้างวัตถุสตริงใน Java
- โดยใช้โอเปอเรเตอร์ใหม่
String str = new String("Tutorials Point");
- โดยใช้ตัวอักษรสตริง
String str = "Tutorials Point";
เมื่อใดก็ตามที่เราเรียกสตริงใหม่ () ใน Java มันจะสร้างวัตถุในหน่วยความจำฮีปและตัวอักษรสตริงจะเข้าสู่ String Constant Pool (SCP)
สำหรับวัตถุ JVM ใช้ SCP ซึ่งใช้สำหรับการจัดการหน่วยความจำที่มีประสิทธิภาพใน Java ไม่เหมือนกับอ็อบเจ็กต์ Java อื่น แทนที่จะจัดการอ็อบเจ็กต์ String บนพื้นที่ฮีป พวกเขาแนะนำพูลค่าคงที่ของ String คุณลักษณะที่สำคัญอย่างหนึ่งของพูลค่าคงที่สตริงคือจะไม่สร้างอ็อบเจ็กต์ String เดียวกันหากมีค่าคงที่สตริงในพูลแล้ว
ตัวอย่าง
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