原来5.0就已经优化好了字符串的连接符号

5.0里面, 字符连接用+号,速度已经可以和StringBuffer媲美了,其唯一的限制就是采用+号连接的时候,不能跨循环。看来编译过程中做了很多优化的工作啊, 本来我还一直以为到6.0以后才有这个优化的,没想到5.0就有了。


    public static void addString(){
        String b="";
        long start=System.currentTimeMillis();
        for(int i=0;i<10000;i++){
            b+=i+"2"+"3"+"4"+i;
        }
        long end=System.currentTimeMillis();
        System.out.println(b.length()+" "+(end-start));
    }
   
    public static void addStringIn(){
       
        int count=0;
        int c=2;
        long start=System.currentTimeMillis();
        String b="";
        for(int i=0;i<10000;i++){
            b=i+"2"+"3"+"4"+(c+i);
            count+=b.length();
        }
        long end=System.currentTimeMillis();
        System.out.println(count+" "+(end-start));
    }
   
    public static void addStringBuffer(){
        StringBuffer b=new StringBuffer();
        long start=System.currentTimeMillis();
        for(int i=0;i<10000;i++){
           b.append(i).append("2").append("3").append("4").append(i);
        }
        long end=System.currentTimeMillis();
        System.out.println(b.length()+" "+(end-start));
    }

你可能感兴趣的:(C++,c,工作,C#)