看板 java 關於我們 聯絡資訊
※ 引述《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