java - 为什么用String替换StringBuilder
黄舟
黄舟 2017-04-18 10:25:48
0
4
563

今天在用android studio 2.0的时候碰到个奇怪问题:
我用StringBuilder生成一个字符串,但是用studio自带的代码检测程序优化代码时,缺把StringBuilder改成了String型“+”连接。
这是什么原因呢?不是StringBuilder应该比“+”性能更好吗?
这是自动替换后的

String sb = "CREATE TABLE IF NOT EXISTS " +
                appContext.getString(R.string.tbl_name) +
                "(_id INTEGER PRIMARY KEY AUTOINCREMENT" +
                ",account VARCHAR" +
                ",psw VARCHAR" +
                ",memo TEXT)";

这是我之前写的

StringBuilder sb = new Stringbuilder();
sb.append(xxxx)
.
.
.
db.execSql(sb.toString());
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

membalas semua(4)
PHPzhong

Pengkompil penyambung yang kesemuanya pemalar akan mengoptimumkannya untuk anda Anda boleh menyemak kod bait fail kelas yang dikompilasi bagi fail yang diganti. Ia sepatutnya lebih baik daripada apa yang anda tulis

Memikirkannya, apa yang dikatakan oleh scort sepatutnya masuk akal Pengkompil harus mengoptimumkan sambungan + pemalar rentetan semasa fasa penyusunan, jadi tidak ada keperluan untuk StringBuilder

阿神

Pengkompil secara dalaman mengoptimumkan penyambung Jika ia adalah pemalar, ia disambung terus melalui kolam pemalar

Jika ia tidak tetap, dalam kebanyakan kes ia akan dioptimumkan secara dalaman seperti ini, StringBuilder().append() baharu dan akhirnya toString() akan dipanggil, sekurang-kurangnya pada jdk1.7

刘奇

Kandungan objek StringBuilder boleh diubah suai, yang lebih baik daripada kelas String dari segi penggunaan memori
Objek String tidak boleh diubah suai setelah ia dijana sebenarnya dua objek.

Jadi dalam penggunaan sebenar, jika anda sering perlu mengubah suai rentetan, seperti sisipan, pemadaman, dan lain-lain, adalah lebih sesuai untuk menggunakan StringBuilder.

Selain itu, penyemak editor hanyalah spesifikasi, tidak semestinya yang terbaik.

Peter_Zhu

Ini ialah pengoptimuman pengkompil Jika anda mempunyai berbilang baris, iaitu berbilang ";" sebagai sambungan, ia tidak akan dioptimumkan

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!