关于String、StringBuffer、String…

不多说先看代码:

 


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的疑问 转发至微博
阅读(21) | 评论(0)
|
       
关于String、StringBuffer、StringBuilder的疑问

用微信  “扫一扫”

将文章分享到朋友圈。

 
关于String、StringBuffer、StringBuilder的疑问

用易信  “扫一扫”

将文章分享到朋友圈。

 
喜欢 推荐 0人   转载
 
历史上的今天
最近读者
热度
在LOFTER的更多文章
关闭
玩LOFTER,免费冲印20张照片,人人有奖!          我要抢>
评论

不多说先看代码:

\r\n

 


package cn.itcast.problem;
public class StringBufferTest {
       
        public static void main(String[] args) {
                long begin=System.currentTimeMillis();
                testStringBuilder();
         
', 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:'' }
{if x.visitorName==visitor.userName} ${x.visitorNickname|escape} {else} ${x.visitorNickname|escape} {/if}
{if x.moveFrom=='wap'}   {elseif x.moveFrom=='iphone'}   {elseif x.moveFrom=='android'}   {elseif x.moveFrom=='mobile'}   {/if} ${fn(x.visitorNickname,8)|escape}
{/if} {/list}
${a.selfIntro|escape}{if great260}${suplement}{/if}
 
{/if}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值