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

Bilakah Anda Harus Menggunakan Kaedah `intern()` String Java?

Barbara Streisand
Barbara Streisandasal
2024-12-04 03:26:13224semak imbas

When Should You Use Java's String `intern()` Method?

String Literals and the intern Method

Soalan:

Di Jawa, apakah situasi yang memerlukan penggunaan intern( ) kaedah pada rentetan literals?

Jawapan:

Java secara automatik melatih literal rentetan, bermakna nilainya disimpan dalam kumpulan malar dan dirujuk oleh berbilang objek rentetan. Walau bagaimanapun, kaedah intern() berguna apabila bekerja dengan rentetan yang dibuat menggunakan operator baharu.

Penjelasan:

Rentetan literal, seperti "Rakesh", secara automatik dimasukkan ke dalam penjara. Ini bermakna rujukan rentetan yang dikembalikan oleh String("Rakesh") baharu akan sentiasa menghala ke objek yang sama seperti "Rakesh" literal.

Walau bagaimanapun, rentetan yang dibuat dengan baharu tidak dimasukkan ke dalam tahanan. Kod String s4 = new String("Rakesh") mencipta objek baharu dalam ingatan, walaupun nilai "Rakesh" sudah wujud dalam kolam malar. Untuk memaksa rentetan yang baru dibuat ini dimasukkan ke dalam intern, kita boleh menggunakan kaedah intern(), seperti yang ditunjukkan dalam String s5 = new String("Rakesh").intern().

Oleh itu, kaedah intern() harus digunakan apabila kita ingin memastikan secara manual bahawa berbilang objek rentetan merujuk kepada objek yang sama dalam kolam malar, walaupun ia dicipta menggunakan baharu.

Contoh:

Pertimbangkan kod berikut:

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"); // 1.
}

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

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

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

Outputnya ialah:

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

Baris 1, 2, dan 4 menggambarkan bahawa s1, s2, s3, dan s5 semuanya merujuk kepada objek yang sama dalam kolam malar. Baris 3 menunjukkan bahawa s4 ialah objek yang berbeza dalam ingatan, walaupun mempunyai nilai yang sama dengan s1.

Atas ialah kandungan terperinci Bilakah Anda Harus Menggunakan Kaedah `intern()` String 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