Bila Menggunakan String#intern() pada String Literals
String#intern() mengembalikan String sedia ada daripada kolam String jika ia hadir atau menambahnya dan mengembalikan rujukan yang ditambah. Walaupun literal String dimasukkan secara automatik, anda mungkin masih perlu menggunakan intern() secara manual dalam senario tertentu.
Pelatihan Automatik String Literal
Dalam kod contoh yang disediakan :
String s1 = "Rakesh"; String s2 = "Rakesh"; String s3 = "Rakesh".intern();
Kedua-dua s1 dan s3 mewakili String yang sama, kerana pelatih adalah digunakan secara tersirat pada literal String di Jawa. Inilah sebabnya mengapa kedua-dua baris, s1 == s2 dan s1 == s3, menilai kepada benar.
Kes Penggunaan untuk intern()
Menggunakan intern() adalah berkaitan apabila berurusan dengan Strings yang bukan String literals. Contohnya:
String s1 = "Rakesh"; String s2 = "Rakesh"; String s3 = new String("Rakesh"); String s4 = new String("Rakesh").intern();
Dalam contoh ini, s1, s2 dan s4 mewakili Rentetan yang sama dalam kumpulan malar disebabkan oleh intern automatik atau seruan eksplisit intern(). Walau bagaimanapun, s3 merujuk kepada tika String baharu yang tiada dalam kumpulan tetap.
Dengan menggunakan intern() secara eksplisit pada s4, ia secara berkesan menyemak sama ada "Rakesh" sudah wujud dalam kumpulan String. Jika tidak, ia menambahkannya dan mengembalikan rujukan String yang ditambahkan. Ini mengoptimumkan penggunaan String dengan mengurangkan objek String pendua dalam memori dan mempromosikan perbandingan kesamaan rentetan.
Atas ialah kandungan terperinci Bilakah Anda Harus Menggunakan `String#intern()` dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!