作者cha122977 (CHA)
看板java
標題Re: [翻譯] 拆穿 Java StringBuilder 的謠言
時間Tue Apr 2 00:16:34 2013
※ 引述《cyclone350 (老子我最神)》之銘言:
: 如果你的程式碼長這樣
: String str = '';
: while(i < 100000) {
: str += 'a';
: }
: jdk 會把迴圈解釋成像這樣
: while(i < 100000) {
: str = new StringBuilder(str).append('a');
: }
部份43
那麼像這樣的程式碼呢?
//******start******//
String str = "";
if (condition1) {
str += "someString1";
}
if (condition2) {
str += "someString2";
}
...
..(中間依此類推)
...
if (conditionN) {
str += "someStringN";
}
System.out.println(str);
//*******end*******//
(厄 我想這不需要註解吧?)
在這個case中 萬一所有condition都為true
那是不是就會宣告出N個StringBuilder 導致performance較差呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.217.52
推 cyclone350:我的理解是:yes ! 04/02 00:19
→ cha122977:我比較擔心有那裏誤解 或者其實我和你的case在哪有差 04/02 00:21
→ cyclone350:可以想像在大部分的情況jdk是直接用new builder替換的 04/02 00:26
推 PsMonkey:我想用 javap 去驗證比猜測可靠 XD 04/02 00:28
→ cha122977:剛忙完 接著連假 先欠著 我之後試試看... 04/02 03:32
→ cha122977:唔 下面有大大替我解答了@@a 04/02 03:35