作者cyclone350 (老子我最神)
看板java
标题Re: [翻译] 拆穿 Java StringBuilder 的谣言
时间Tue Apr 2 00:08:30 2013
: 推 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
1F:→ cyclone350:太久没写了,把 " 写成 ' ,不过表达意思应该没差 04/02 00:10
2F:推 JingXD:python 写太多XD? 04/02 15:08
3F:→ cha122977:也可能是js或ruby呀xd 04/02 16:10