java中stringBuilder的用法基础

如果程序对附加字符串的需求很频繁,不建议使用+来进行字符串的串联。可以考虑使用java.lang.StringBuilder 类,使用这个类所产生的对象默认会有16个字符的长度,您也可以自行指定初始长度。如果附加的字符超出可容纳的长度,则StringBuilder 对象会自动增加长度以容纳被附加的字符。如果有频繁作字符串附加的需求,使用StringBuilder 类能使效率大大提高。如下代码:

public   class AppendStringTest   
{   
     public   static   void main(String[] args)   
            {   
                   String text = "" ;   
                  
                   long beginTime = System.currentTimeMillis();   
                   for ( int i= 0 ;i< 10000 ;i++)   
                         text = text + i;   
                   long endTime = System.currentTimeMillis();   
                   System.out.println("执行时间:" +(endTime-beginTime));   
   
                   StringBuilder sb = new StringBuilder ( "" );   
                   beginTime = System.currentTimeMillis();   
                   for ( int i= 0 ;i< 10000 ;i++)   
                          sb.append(String.valueOf(i));   
                   endTime = System.currentTimeMillis();   
                   System.out.println("执行时间:" +(endTime-beginTime));   
   
            }   
}   
public class AppendStringTest
{
     public static void main(String[] args)
            {
                   String text = "";
                   long beginTime = System.currentTimeMillis();
                   for(int i=0;i<10000;i++)
                         text = text + i;
                   long endTime = System.currentTimeMillis();
                   System.out.println("执行时间:"+(endTime-beginTime));
                   StringBuilder sb = new StringBuilder ("");
                   beginTime = System.currentTimeMillis();
                   for(int i=0;i<10000;i++)
                          sb.append(String.valueOf(i));
                   endTime = System.currentTimeMillis();
                   System.out.println("执行时间:"+(endTime-beginTime));
            }
} 此段代码输出:
执行时间:3188
执行时间:15
StringBuilder 是j2se1.5.0才新增的类,在此之前的版本若有相同的需求,则使用java.util.StringBuffer。事实上StringBuilder 被设计为与StringBuffer具有相同的操作接口。在单机非线程(MultiThread)的情况下使用StringBuilder 会有较好的效率,因为StringBuilder 没有处理同步的问题。StringBuffer则会处理同步问题,如果StringBuilder 会有多线程下被操作,则要改用StringBuffer,让对象自行管理同步问题。
发布了23 篇原创文章 · 获赞 30 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/cj_Allen/article/details/50370317
今日推荐