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!