作者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
1F:推 cyclone350:我的理解是:yes ! 04/02 00:19
2F:→ cha122977:我比较担心有那里误解 或者其实我和你的case在哪有差 04/02 00:21
3F:→ cyclone350:可以想像在大部分的情况jdk是直接用new builder替换的 04/02 00:26
4F:推 PsMonkey:我想用 javap 去验证比猜测可靠 XD 04/02 00:28
5F:→ cha122977:刚忙完 接着连假 先欠着 我之後试试看... 04/02 03:32
6F:→ cha122977:唔 下面有大大替我解答了@@a 04/02 03:35