第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么用String替換StringBuilder

為什么用String替換StringBuilder

翻翻過去那場雪 2019-02-23 14:48:32
今天在用android studio 2.0的時候碰到個奇怪問題:我用StringBuilder生成一個字符串,但是用studio自帶的代碼檢測程序優(yōu)化代碼時,缺把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());
查看完整描述

4 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

全是常量的拼接編譯器會給你優(yōu)化,你可以查看替換后的文件編譯后class文件的字節(jié)碼,應該是優(yōu)于你寫的

想想 scort說的應該是有道理的,編譯器應該在編譯階段把string常量的+連接進行了優(yōu)化,就不需要StringBuilder了

查看完整回答
反對 回復 2019-03-01
?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

編譯器內部優(yōu)化了連接符,如果是常量,通過常量池的方式直接拼接

如果非常量,大多數(shù)情況會在內部類似這樣優(yōu)化,new StringBuilder().append(),最后會調用toString(),至少jdk1.7上是這樣的

查看完整回答
反對 回復 2019-03-01
?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

這是編譯器的優(yōu)化,如果你是多行也就是多個";"作為連接時候就不會優(yōu)化了

查看完整回答
反對 回復 2019-03-01
  • 4 回答
  • 0 關注
  • 540 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號