String: Objek tanpa Kata Kunci 'Baharu'
String, walaupun objek dalam Java, boleh dibuat tanpa kata kunci baharu. Untuk memahami sebabnya, pertimbangkan contoh berikut:
Object obj = new Object();
Kod ini mencipta tika kelas Objek menggunakan kata kunci baharu. Walau bagaimanapun, apabila mencipta String, kami menggunakan sintaks yang berbeza:
String str = "Hello World";
Interned String Literal
Punca percanggahan ini terletak pada perlakuan Java terhadap literal String. Huruf rentetan, seperti "Hello World," dimasukkan ke dalam penjara, bermakna ia disimpan dalam kolam Rentetan pusat. Setiap kali literal String ditemui, Java menyemak kolam untuk contoh sedia ada. Jika String ditemui dalam kolam, Java mengembalikan rujukan kepada contoh itu dan bukannya mencipta yang baharu.
Pertimbangkan kod berikut:
String a = "abcd"; String b = "abcd"; System.out.println(a == b); // Output: True
Memandangkan kedua-dua a dan b merujuk kepada Rentetan yang sama secara literal, mereka adalah sama secara fizikal (iaitu, mereka menghala ke objek yang sama).
Rentetan Tersuai dengan 'Baharu'
Sementara latihan berfaedah untuk kecekapan , adalah mungkin untuk membuat contoh String tersuai menggunakan baru. Contohnya:
String a = new String("abcd"); String b = new String("abcd"); System.out.println(a == b); // Output: False
Dalam kes ini, a dan b ialah objek String berbeza yang dicipta menggunakan baharu.
Faedah Interning
String Interning literals meningkatkan prestasi kerana ia menghapuskan keperluan untuk mencipta berbilang contoh String yang sama. Ini amat berguna apabila Strings digunakan beberapa kali dalam program. Sebagai contoh, dalam kod berikut:
for (int i = 0; i < 10; i++) { System.out.println("Next iteration"); }
Rentetan "Lelaran seterusnya" hanya dibuat seketika kerana latihan, walaupun ia digunakan dalam gelung. Tanpa latihan, setiap lelaran gelung memerlukan contoh String baharu, yang berpotensi membazirkan ingatan.
Atas ialah kandungan terperinci Mengapa Rentetan Boleh Dicipta Tanpa Kata Kunci 'Baharu' di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!