Rumah  >  Artikel  >  Java  >  Mengapa Kami Tidak Menggunakan 'baru' untuk Mencipta Rentetan dalam Java?

Mengapa Kami Tidak Menggunakan 'baru' untuk Mencipta Rentetan dalam Java?

Patricia Arquette
Patricia Arquetteasal
2024-11-13 16:45:02621semak imbas

Why Don't We Use 'new' to Create Strings in Java?

String ialah Objek dalam Java: Mengapa Tiada 'baru' untuk Penciptaan?

String dalam Java ialah objek, namun tidak seperti objek lain, mereka 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!

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