Memandangkan Strings Java disimpan dalam ingatan dengan cara panjang tetap, semua penambahan, pemadaman dan pengubahsuaian pada Strings memerlukan penciptaan memori baharu dan penyalinan memori.
Kaedah pemprosesan StringBuffer dan StringBuilder adalah berbeza daripada penambahan, pemadaman dan pengubahsuaian String biasa. Mereka memohon memori terlebih dahulu untuk mengelakkan aplikasi memori yang kerap.
Sebagai contoh, kami sambungkan "a", "b" dan "c" masing-masing. Jika anda menggunakan "a" + "b" + "c", (tanpa pengoptimuman) Java akan mula-mula memohon untuk memori dua bait dan menyalin "a" dan "b" ke memori ini. Kemudian memohon untuk memori tiga bait dan salin "ab" dan "c" ke memori ini. Dengan StringBuffer atau StringBuilder, mereka akan memohon memori yang besar terlebih dahulu (lalai ialah 16 bait, kita hanya perlu menyalin terus "a", "b", dan "c" ke memori ini ia, tidak perlu berulang kali memohon untuk ingatan. Bentuk permohonan dahulu dan kemudian menggunakannya di sini mencerminkan konsep zon penampan.
Tiada objek baharu dihasilkan. Setiap kali + digunakan dengan String, objek baharu akan dijana Sudah tentu, pengkompil akan melakukan pengoptimuman kompilasi dalam tempoh yang singkat, dan penimbal akan dilampirkan terus pada objek asal dan tidak akan menghasilkan objek baharu <.>
Ambil StringBuilder sebagai contoh di sini Lihat kod sumber Storan dalaman StringBuilder disimpan menggunakan tatasusunan aksara Apabila menambahkan, rentetan berikut akan disalin ke tatasusunan aksara dalam StringBuilder , ia akan menggunakan Pergi ke System.arrayCopy untuk melaksanakan mekanisme pengembangan, yang sangat cekap. Beginilah cara penimbalan dilaksanakan.
Memandangkan Strings Java disimpan dalam ingatan dengan cara panjang tetap, semua penambahan, pemadaman dan pengubahsuaian pada Strings memerlukan penciptaan memori baharu dan penyalinan memori.
Kaedah pemprosesan StringBuffer dan StringBuilder adalah berbeza daripada penambahan, pemadaman dan pengubahsuaian String biasa. Mereka memohon memori terlebih dahulu untuk mengelakkan aplikasi memori yang kerap.
Sebagai contoh, kami sambungkan "a", "b" dan "c" masing-masing. Jika anda menggunakan "a" + "b" + "c", (tanpa pengoptimuman) Java akan mula-mula memohon untuk memori dua bait dan menyalin "a" dan "b" ke memori ini. Kemudian memohon untuk memori tiga bait dan salin "ab" dan "c" ke memori ini.
Dengan StringBuffer atau StringBuilder, mereka akan memohon memori yang besar terlebih dahulu (lalai ialah 16 bait, kita hanya perlu menyalin terus "a", "b", dan "c" ke memori ini ia, tidak perlu berulang kali memohon untuk ingatan. Bentuk permohonan dahulu dan kemudian menggunakannya di sini mencerminkan konsep zon penampan.
Tiada objek baharu dihasilkan. Setiap kali + digunakan dengan String, objek baharu akan dijana Sudah tentu, pengkompil akan melakukan pengoptimuman kompilasi dalam tempoh yang singkat, dan penimbal akan dilampirkan terus pada objek asal dan tidak akan menghasilkan objek baharu <.>
Ambil StringBuilder sebagai contoh di sini Lihat kod sumber Storan dalaman StringBuilder disimpan menggunakan tatasusunan aksara Apabila menambahkan, rentetan berikut akan disalin ke tatasusunan aksara dalam StringBuilder , ia akan menggunakan Pergi ke System.arrayCopy untuk melaksanakan mekanisme pengembangan, yang sangat cekap. Beginilah cara penimbalan dilaksanakan.
String d = "a" + "b" + "c";
Biasa "a" + "b" + "c"
ialah
yang akan menjana objek rentetan "ab".Tetapi menggunakan dua kelas tersebut hanya akan menghasilkan objek "abc" terakhir