不多说先看代码:
package cn.itcast.problem;
public class StringBufferTest {
public static void main(String[] args) {
long begin=System.currentTimeMillis();
testStringBuilder();
long end=System.currentTimeMillis();
System.out.println("cost.."+(end-begin));
}
private static void testString() {
String str=new String();
//这里循环不能太大,否则会耗时很久,甚至内存溢出;
for(int i=0;i<20000;i++){
//这 最垃圾的操作,每次都会有很多的new String();对象;
str+=" * "+i+" * ";
}
}
private static void testStringBuffer(){
StringBuffer sb=new StringBuffer();
for(int i=0;i<20000;i++){
//这 用+号,每次+都会有一个StringBuilder创建出来
sb.append(" * "+i+" * ");
}
String str=sb.toString();
}
private static void testStringBuffer2(){
StringBuffer sb=new StringBuffer();
for(long i=0;i<100000;i++){
//注意和上面+有所不同,这 虽然更麻烦,但是更 高效;他只有一个StringBuffer;
sb.append(" * ");
sb.append(i);
sb.append(" * ");
}
String str=sb.toString();
}
private static void testStringBuilder(){
StringBuilder sb=new StringBuilder();
//这里为了看到效果设置大一点:
for(long i=0;i<100000;i++){
//这是最高效的方式。推荐使用;
sb.append(" * ");
sb.append(i);
sb.append(" * ");
}
String str=sb.toString();
}
private static void testStringBuilder2(){
StringBuilder sb=new StringBuilder();
for(long i=0;i<100000;i++){
//这 不推荐使用,跟上面的一 。。。
sb.append(" * "+i+" * ");
}
String str=sb.toString();
}
}
结论:使用StringBuilder而不是StringBuffer和String;
使用多个append而不是+号;
![关于String、StringBuffer、StringBuilder的疑问 关于String、StringBuffer、StringBuilder的疑问](https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif)
![关于String、StringBuffer、StringBuilder的疑问 关于String、StringBuffer、StringBuilder的疑问](https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif)
阅读(21)
|
评论(0)
|
![关于String、StringBuffer、StringBuilder的疑问 关于String、StringBuffer、StringBuilder的疑问](https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif)
用微信
将文章分享到朋友圈。
![关于String、StringBuffer、StringBuilder的疑问 关于String、StringBuffer、StringBuilder的疑问](https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif)
用易信
将文章分享到朋友圈。
喜欢
推荐
0人 |
转载
不多说先看代码:
\r\n
', blogTag:'java问题', blogUrl:'blog/static/21727620920134884022130', isPublished:1, istop:false, type:0, modifyTime:1400160324184, publishTime:1368016822130, permalink:'blog/static/21727620920134884022130', commentCount:0, mainCommentCount:0, recommendCount:0, bsrk:-100, publisherId:0, recomBlogHome:false, currentRecomBlog:false, attachmentsFileIds:[], vote:{}, groupInfo:{}, friendstatus:'none', followstatus:'unFollow', pubSucc:'', visitorProvince:'', visitorCity:'', visitorNewUser:false, postAddInfo:{}, mset:'000', mcon:'', srk:-100, remindgoodnightblog:false, isBlackVisitor:false, isShowYodaoAd:false, hostIntro:'JAVA软件工程师,有扎实的Java基础,熟悉JavaEE技术,对框架的底层原理熟悉,学习能力强。', hmcon:'0', selfRecomBlogCount:'0', lofter_single:'' }
package cn.itcast.problem;
public class StringBufferTest {
public static void main(String[] args) {
long begin=System.currentTimeMillis();
testStringBuilder();
{if x.visitorName==visitor.userName}
{else}
{/if}
{/if} {/list}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
{/if}
${fn(x.visitorNickname,8)|escape}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{/if}