zoukankan      html  css  js  c++  java
  • StringBuffer的拼接效率小细节

    最近看项目代码发现经常StringBuffer拼接SQL里面有这样的代码sql.append("select * from XXX where xxx="+xxx+" and yyy="+yyy);

    于是我很好奇这样写是按顺序连续append还是先创建一个StringBuffer对象append全部String,然后再传送到sql对象中去

    实践检验代码如下

        public static void main(String[] args){
            t(9);
            
        }
        private static void t( int q){
            StringBuffer sb=new StringBuffer();
            long start=System.currentTimeMillis();
            for(int i=0;i<200000;i++){
                sb.append("11111111111111"+q+"11111111111111"+q+"111111111111111"+q);
            }
            long end=System.currentTimeMillis();
            long start2=System.currentTimeMillis();
            for(int i=0;i<200000;i++){
                sb.append("11111111111111");
                sb.append(q);
                sb.append("11111111111111");
                sb.append(q);
                sb.append("11111111111111");
                sb.append(q);
                
            }
            long end2=System.currentTimeMillis();
            
            long start3=System.currentTimeMillis();
            for(int i=0;i<200000;i++){
                sb.append("11111111111111"+q);
                sb.append("11111111111111"+q);
                sb.append("11111111111111"+q);
                
            }
            long end3=System.currentTimeMillis();
            System.out.println(start-end);
            System.out.println(start2-end2);
            System.out.println(start3-end3);
        }
        //console输出如下:
        //-140
        //-31
        //-125

    备注:

    因为预编译会把所有已知的String拼接成一起,所以拼接中必须要是未知数。

    String的每一次拼接参数会创建一个StringBuffer对象,单条String拼接次数越多耗费StringBuffer创建资源也就越多。

    结论:

    StringBuffer的拼接过程中应该尽量保证已知String与未知变量分离sppend,可节约资源。

  • 相关阅读:
    MySql 踩坑小记
    Redux 实现过程的推演
    正则表达式的一些探索(偏JavaScript)
    [python工具] 如何使用plotly制作散列图
    使用epoll实现一个udp server && client
    python 实现一个简单tcp epoll socket
    [原创]差分放大器阻抗匹配计算+阻抗计算小工具
    将博客搬至CSDN
    [转]谈NAND Flash的底层结构和解析
    [原创]Fashion汽车定位器拆解
  • 原文地址:https://www.cnblogs.com/blackdeng/p/7243318.html
Copyright © 2011-2022 走看看