Rumah > Java > javaTutorial > teks badan

Mengapa Rentetan Boleh Dicipta Tanpa 'baharu' di Jawa?

Patricia Arquette
Lepaskan: 2024-11-18 06:32:02
asal
175 orang telah melayarinya

Why Can Strings be Created Without 'new' in Java?

Penciptaan Rentetan dalam Java: Menyingkap Ketiadaan 'baharu'

Walaupun Java biasanya menggunakan kata kunci 'baharu' untuk menjadikan objek, rentetan menunjukkan penyimpangan ingin tahu daripada norma ini. Tidak seperti objek lain, rentetan boleh dibuat tanpa menggunakan 'baru'. Ini menimbulkan persoalan: mengapa pengecualian ini wujud? Adakah masih mungkin untuk menggunakan 'baharu' dalam penciptaan rentetan?

Memahami Mekanisme Interning

Selain penjelasan sebelumnya, adalah penting untuk mengenali mekanisme interning yang digunakan untuk literal rentetan ("abcd" tetapi bukan String baru("abcd") dalam Java). Mekanisme ini memastikan bahawa setiap tika "abcd" merujuk satu tika String tunggal, menghalang penciptaan kejadian baharu apabila rujukan berulang. Hasilnya:

String a = "abcd";
String b = "abcd";

a == b; //True
Salin selepas log masuk

Perbandingan dengan Rentetan Bukan Intern

Sebaliknya, apabila mencipta rentetan menggunakan 'baharu', objek yang terhasil adalah contoh yang berbeza:

String a = new String("abcd");
String b = new String("abcd");

a == b; // False
Salin selepas log masuk

Prestasi Pertimbangan

Interling rentetan literal mempunyai implikasi prestasi yang mendalam. Rentetan sering muncul berbilang kali dalam kod, dan interning menghapuskan keperluan untuk menyatakannya berulang kali. Pengoptimuman ini menjadi amat berfaedah dalam senario seperti:

for (int i = 0; i < 10; i++) {
  System.out.println("Next iteration");
}
Salin selepas log masuk

Tanpa interning, rentetan "Lelaran seterusnya" akan memerlukan 10 instantiations, manakala interning memastikan satu instantiation.

Atas ialah kandungan terperinci Mengapa Rentetan Boleh Dicipta Tanpa 'baharu' di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan