Rumah >Java >javaTutorial >Bilakah Anda Harus Menggunakan Kaedah `intern()` untuk Rentetan Java?

Bilakah Anda Harus Menggunakan Kaedah `intern()` untuk Rentetan Java?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-06 10:37:11673semak imbas

When Should You Use the `intern()` Method for Java Strings?

Bila Menggunakan Kaedah intern untuk String Literal

String yang dibuat menggunakan sintaks literal ("String") secara automatik dimasukkan ke dalam String pool oleh JVM. Akibatnya, operator == berkelakuan secara konsisten untuk literal String.

Walau bagaimanapun, interning tidak automatik untuk Strings yang dibuat dengan String() baharu. Di sinilah kaedah intern() menjadi relevan.

Menggunakan kaedah intern() pada String yang dibuat dengan String() baharu akan menambah String itu ke kolam dan mengembalikan contoh objek sedia ada jika String yang sama sudah wujud dalam kolam.

Contohnya:

String s1 = "Rakesh";
String s2 = "Rakesh";
String s3 = "Rakesh".intern();
String s4 = new String("Rakesh");
String s5 = new String("Rakesh").intern();

if (s1 == s2) {
    System.out.println("s1 and s2 are same");
}

if (s1 == s3) {
    System.out.println("s1 and s3 are same");
}

if (s1 == s4) {
    System.out.println("s1 and s4 are same");
}

if (s1 == s5) {
    System.out.println("s1 and s5 are same");
}

Output akan be:

s1 and s2 are same
s1 and s3 are same
s1 and s5 are same

Dalam semua kes kecuali s4, di mana String telah dibuat secara eksplisit menggunakan baharu dan tidak diinternet, kumpulan pemalar rentetan JVM mengembalikan contoh tidak berubah yang sama.

Rujuk JavaTechniques "String Equality and Interning" untuk mendapatkan maklumat yang lebih terperinci.

Atas ialah kandungan terperinci Bilakah Anda Harus Menggunakan Kaedah `intern()` untuk Rentetan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn