มีสองวิธีในการสร้างวัตถุสตริงใน 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