Mencipta Rentetan dalam Java: Kes "String s = new String("bodoh")"
Apabila mencipta rentetan dalam Java, adalah penting untuk memahami tingkah laku kelas String. Tidak seperti kebanyakan kelas lain di Java, literal String mencipta objek String secara automatik tanpa memerlukan kata kunci baharu. Walau bagaimanapun, mencipta objek String baharu menggunakan operator baharu adalah tidak digalakkan secara jelas, kerana ia boleh menyebabkan penggunaan memori yang tidak perlu.
Untuk menggambarkan perkara ini, pertimbangkan kod berikut:
String s = "No longer silly";
Dalam ini kes, literal "Tidak lagi bodoh" diberikan terus kepada pembolehubah s, menyebabkan objek String tunggal dicipta. Walau bagaimanapun, coretan kod berikut:
String s = new String("silly");
mencipta objek String tambahan yang tidak diperlukan. Untuk mengelakkan ini, pengesyoran adalah untuk menggunakan penugasan literal apabila boleh, seperti yang dilihat dalam contoh pertama.
Walau bagaimanapun, mungkin terdapat situasi yang perlu untuk mencipta objek String secara dinamik. Sebagai contoh, pertimbangkan kelas berikut:
public final class CaseInsensitiveString { private String s; public CaseInsensitiveString(String s) { if (s == null) { throw new NullPointerException(); } this.s = s; } }
Dalam senario ini:
Atas ialah kandungan terperinci Mengapakah perlu menggunakan `baru` apabila mencipta objek `CaseInsensitiveString` tetapi bukan objek `String`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!