Rumah > Java > javaTutorial > Mengapa Anda Boleh Mencipta Rentetan dalam Java Tanpa Kata Kunci 'baru'?

Mengapa Anda Boleh Mencipta Rentetan dalam Java Tanpa Kata Kunci 'baru'?

Barbara Streisand
Lepaskan: 2024-11-16 21:51:03
asal
588 orang telah melayarinya

Why Can You Create Strings in Java Without the

Rentetan: Objek tanpa Kata Kunci "baharu"

Rentetan Java sememangnya objek, namun ia unik kerana ia boleh dibuat tanpa kata kunci "baharu". Ini menimbulkan persoalan: mengapa?

Pada mulanya, rentetan mungkin kelihatan seperti objek lain:

Object obj = new Object();
Salin selepas log masuk

Walau bagaimanapun, rentetan tidak dimulakan dengan cara ini:

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

Pelatihan String Literal

Untuk memahami perkara ini percanggahan, kita perlu mendalami konsep interning rentetan. Interning bermaksud bahawa setiap kejadian rentetan literal tertentu (cth., "abcd") merujuk kepada satu tika rentetan itu, dan bukannya membuat kejadian baharu setiap kali.

Dalam Java, rentetan yang diisytiharkan dengan petikan berganda ialah dianggap sebagai literal dan secara automatik dimasukkan ke dalam penjara. Ini bermakna:

String a = "abcd";
String b = "abcd";
Salin selepas log masuk

akan menghasilkan:

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

Penciptaan Rentetan dengan "baharu"

Walaupun latihan didayakan untuk rentetan literal, anda masih boleh membuat rentetan menggunakan "baharu" kata kunci:

String a = new String("abcd");
String b = new String("abcd");
Salin selepas log masuk

Walau bagaimanapun, dalam kes ini, adalah mungkin untuk mempunyai:

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

Faedah Interning

Interning string literals memberikan beberapa faedah:

  • Prestasi: Oleh menggunakan satu tika untuk setiap rentetan unik, JVM memperuntukkan kurang memori dan melakukan lebih sedikit ciptaan objek.
  • Penjimatan Memori: Interning memastikan bahawa hanya satu tika wujud untuk setiap rentetan yang berbeza, mengurangkan jejak ingatan.
  • Pemeriksaan Kesaksamaan: Menggunakan "==" untuk literal rentetan adalah sah kerana ia menyemak kesaksamaan fizikal, yang dijamin kerana interning.

Nota: Sentiasa disyorkan untuk menggunakan kaedah .equals() untuk membandingkan rentetan, walaupun untuk rentetan yang dilatih. , kerana ia menyemak kesaksamaan kandungan.

Atas ialah kandungan terperinci Mengapa Anda Boleh Mencipta Rentetan dalam Java Tanpa Kata Kunci 'baru'?. 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