java - 字符串类StringBuffer和StringBuilder叫字符串缓冲区,请问哪里体现缓冲了?
PHPz
PHPz 2017-04-18 10:31:19
0
4
635

字符串类StringBuffer和StringBuilder叫字符串缓冲区,请问哪里体现缓冲了?

PHPz
PHPz

学习是最好的投资!

membalas semua(4)
小葫芦

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 <.>

Ty80

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";

Peter_Zhu

Biasa "a" + "b" + "c"

ialah

yang akan menjana objek rentetan "ab".

Tetapi menggunakan dua kelas tersebut hanya akan menghasilkan objek "abc" terakhir

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!