Re: [翻譯] 拆穿 Java StringBuilder 的謠言
: 推 AI3767:那篇在迴圈內+=, 不是一次性加起來, 確實很高可能造成變慢 04/01 23:46
: → cha122977:可以請教為何 str+=str; 會重複宣告嗎?不太明白 04/01 23:56
大概看懂版主跟那篇文章是啥意思了,我用白話一點 (有務請修正)
如果你的程式碼長這樣
String str = '';
while(i < 100000) {
str += 'a';
}
jdk 會把迴圈解釋成像這樣
while(i < 100000) {
str = new StringBuilder(str).append('a');
}
但是如果你自己用 StringBuilder 的話會是這樣用
StringBuilder str = new StringBuilder();
while(i < 100000) {
str.append('a');
}
所以差在的時間應該很明顯在哪邊 !!
雖然 + 號會被解釋成 append,但是他不是萬用的
在某些情況仍需要自行使用 StringBuilder 來提升效能
這應該就是那邊文章的結論 !?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 49.159.136.214
→
04/02 00:10, , 1F
04/02 00:10, 1F
推
04/02 15:08, , 2F
04/02 15:08, 2F
→
04/02 16:10, , 3F
04/02 16:10, 3F
討論串 (同標題文章)