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

Bilakah Anda Harus Menggunakan `String#intern()` dalam Java?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-26 06:06:141000semak imbas

When Should You Use `String#intern()` in Java?

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!

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