String ialah Objek dalam Java: Mengapa Tiada 'baru' untuk Penciptaan?
String dalam Java ialah objek, namun tidak seperti objek lain, ia biasanya dibuat tanpa menggunakan kata kunci 'baru'. Amalan ini menimbulkan persoalan mengapa 'baharu' tidak diperlukan untuk penciptaan rentetan.
Sebab Tidak Menggunakan 'baharu': String Interning
Daripada mencipta yang baharu Objek rentetan setiap kali literal rentetan digunakan, Java melakukan proses yang dikenali sebagai interning. Interning melibatkan penyimpanan literal rentetan dalam kolam pusat, yang dikenali sebagai kolam rentetan. Apabila literal rentetan ditemui, ia diperiksa terhadap kolam rentetan. Jika literal rentetan yang sama sudah wujud, rujukan kepada rentetan sedia ada dikembalikan, bukannya mencipta objek baharu.
Contoh:
Pertimbangkan kod berikut:
String str1 = "Hello"; String str2 = "Hello";
Dalam contoh ini, kedua-dua 'str1' dan 'str2' merujuk objek String yang sama dalam kolam rentetan, walaupun dicipta secara berasingan. Akibatnya, 'str1 == str2' menilai kepada benar, menunjukkan bahawa mereka adalah sama secara fizikal.
Kelebihan Interning:
Interning mengoptimumkan prestasi dengan mengurangkan bilangan objek String yang dicipta, terutamanya untuk rentetan yang kerap digunakan. Contohnya, dalam gelung di mana literal rentetan digunakan berbilang kali, hanya satu objek Rentetan dibuat, bukannya mencipta semula setiap lelaran, yang membawa kepada penjimatan memori yang ketara.
Mencipta Rentetan dengan 'baharu'
Walaupun latihan adalah pendekatan yang disyorkan, anda masih boleh membuat String menggunakan 'baharu'. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ini boleh menyebabkan berbilang objek String dicipta untuk nilai rentetan yang sama, yang mungkin memberi kesan kepada penggunaan dan prestasi memori.
Kesimpulan:
Ketiadaan 'baru' dalam penciptaan rentetan di Jawa berpunca daripada penggunaan string interning. Interning meningkatkan prestasi dengan mengurangkan penciptaan objek yang tidak perlu dan menggalakkan kecekapan memori, menjadikannya kaedah pilihan untuk mencipta rentetan.
Atas ialah kandungan terperinci Mengapa Kami Tidak Menggunakan 'baru' untuk Mencipta Rentetan dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!