String Literals and New Keyword in Java Strings
Dalam Java, kelas String ialah jenis data asas yang digunakan untuk mewakili jujukan aksara. Walau bagaimanapun, terdapat perbezaan yang ketara antara mencipta objek String baharu menggunakan kata kunci baharu dan memberikan rentetan literal secara langsung kepada pembolehubah.
Menggunakan Kata Kunci baharu
The coretan kod String s = new String("silly"); mencipta contoh baharu kelas String, dengan "mengarut" literal sebagai hujah. Operasi ini memperuntukkan memori tambahan dan mencipta objek baharu pada timbunan.
Menetapkan Literal Secara Terus
Sebaliknya, String tugasan s = "Tidak lagi bodoh "; secara langsung memberikan nilai literal "Tidak lagi bodoh" kepada pembolehubah s. Java secara automatik mencipta objek String tanpa nama dan menyimpannya dalam pembolehubah, tanpa perlu menggunakan kata kunci baharu. Pengoptimuman ini mengelakkan peruntukan memori dan penciptaan objek yang tidak diperlukan.
Walau bagaimanapun, dalam kes kelas CaseInsensitiveString, yang tidak melanjutkan kelas String, penetapan langsung literal tidak disokong secara langsung. Untuk membenarkan ini, kami mempunyai dua pilihan:
Pilihan 1: Lanjutkan Kelas String
Kami boleh melanjutkan kelas String untuk mencipta kelas CaseInsensitiveString yang mewarisi kelakuannya dan membenarkan penugasan langsung literal. Ini dilakukan dengan mengatasi kaedah toString() dan equals() untuk menyediakan perbandingan tidak peka huruf besar-kecil.
Pilihan 2: Lebihan Pembina Tersuai
Pendekatan lain ialah dengan terlebih beban pembina CaseInsensitiveString untuk menerima hujah literal. Ini boleh dicapai dengan menyediakan pembina yang mengambil hujah String dan secara automatik memulakan medan s.
Atas ialah kandungan terperinci Bilakah anda harus menggunakan kata kunci 'baru' untuk Java Strings?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!