Rumah > Java > javaTutorial > Mengapa Rentetan Boleh Dicipta Tanpa Kata Kunci 'Baharu' di Jawa?

Mengapa Rentetan Boleh Dicipta Tanpa Kata Kunci 'Baharu' di Jawa?

Susan Sarandon
Lepaskan: 2024-11-13 13:12:02
asal
1025 orang telah melayarinya

Why Can Strings Be Created Without the 'New' Keyword in Java?

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();
Salin selepas log masuk

Kod ini mencipta tika kelas Objek menggunakan kata kunci baharu. Walau bagaimanapun, apabila mencipta String, kami menggunakan sintaks yang berbeza:

String str = "Hello World";
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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");
}
Salin selepas log masuk

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!

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