Penggabungan Rentetan Null dalam Java
Di Java, penggabungan rentetan null dengan rentetan lain tidak menghasilkan NullPointerException. Tingkah laku ini mungkin kelihatan mengejutkan, tetapi ia ditakrifkan oleh Spesifikasi Bahasa Java (JLS).
Mengapakah penggabungan berjaya untuk rentetan nol?
Menurut JLS 5, Bahagian 15.18.1.1, apabila rujukan adalah nol, ia ditukar kepada rentetan "null" sebelum penyatuan. Penukaran ini dilakukan secara automatik oleh pengkompil.
Bagaimanakah penggabungan dengan rentetan nol berfungsi?
Di sebalik tabir, pengkompil mengoptimumkan operasi penggabungan untuk menggunakan StringBuilder, yang boleh mengendalikan nilai nol dengan cekap. Dalam bytecode, kod yang setara untuk menggabungkan rentetan nol "s" dengan rentetan "hello" ialah:
String s = null; s = new StringBuilder(String.valueOf(s)).append("hello").toString();
Pembina StringBuilder mengambil nilai ditukar rentetan nol, iaitu "null", dan tambahkannya pada rentetan "hello" untuk mencipta rentetan akhir "nullhello".
Nota: Penggabungjalinan rentetan ialah salah satu daripada beberapa pengoptimuman yang boleh dilakukan oleh pengkompil Java. Pelaksanaan tepat mungkin berbeza-beza bergantung pada pengkompil yang digunakan, tetapi gelagat penggabungan nol kekal konsisten.
Atas ialah kandungan terperinci Bagaimanakah Java Mengendalikan Penggabungan Rentetan dengan Nilai Null?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!