Apabila menukar integer kepada rentetan dalam Java, pendekatan konvensional melibatkan penggunaan sama ada Integer.toString(int) atau Kaedah String.valueOf(int). Walau bagaimanapun, pendekatan pelik yang telah diperhatikan ialah penggunaan penggabungan rentetan, seperti yang dilihat dalam coretan kod berikut:
int i = 5; String strI = "" + i;
Kaedah sedemikian adalah tidak konvensional dan mungkin menunjukkan kekurangan pengetahuan tentang teknik yang betul dalam Java. Walaupun kaedah penggabungan ini mungkin berfungsi, ia merupakan amalan yang luar biasa.
Menggali lebih mendalam tentang cara Java mengendalikan penggabungan ini, pengkompil mengoptimumkan dan menterjemahkan kod tersebut ke dalam satu siri lampiran rentetan, seperti yang ditunjukkan di bawah:
StringBuilder sb = new StringBuilder(); sb.append(""); sb.append(i); String strI = sb.toString();
Walaupun kaedah ini kurang berprestasi kerana penggunaan StringBuilder.append() dan Integer.getChars(), ia masih mencapai hasil yang diingini.
Adalah penting untuk ambil perhatian bahawa pengkompil tidak mengoptimumkan gabungan rentetan kosong, seperti yang terbukti daripada analisis bytecode di bawah:
... 9: ldc #4; //String 11: invokevirtual #5; //Method java/lang/StringBuilder.append: (Ljava/lang/String;)Ljava/lang/StringBuilder; ...
Ini telah membawa kepada cadangan dan pembangunan berterusan untuk mengubah tingkah laku sedemikian dalam JDK 9. Oleh itu, adalah disyorkan untuk menggunakan kaedah standard seperti Integer.toString(int) atau String.valueOf(int) untuk kejelasan dan kebolehselenggaraan apabila menukar integer kepada rentetan dalam Java.
Atas ialah kandungan terperinci Mengapa Penggabungan Rentetan untuk Penukaran Integer-ke-String dalam Java Dianggap Bukan Konvensional?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!