几种拼接字符串的效率问题 .

public class test { 

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
		long n = 30000;
		System.out.println("Start... "+n);  

        long start1 = System.currentTimeMillis();
        String s1 = new String("hello");
        for (long i = 0; i < n; i++)
        {
            s1+="拼接字符串的时间";
        }
        long end1 = System.currentTimeMillis();
        long time1 = end1 -start1;
        System.out.println("用String+=拼接字符串的时间"+time1);   

        long start2 = System.currentTimeMillis();
        String s2 = new String("hello");
        for (long i = 0; i < n; i++)
        {
            s2=s2+"拼接字符串的时间";
        }
        long end2 = System.currentTimeMillis();
        long time2 = end2 -start2;
        System.out.println("用String=String+拼接字符串的时间"+time2); 

        long start3 = System.currentTimeMillis();
        String s3 = new String("hello");
        for (long i = 0; i < n; i++)
        {
            s3=s3.concat("拼接字符串的时间");
        }
        long end3 = System.currentTimeMillis();
        long time3 = end3 -start3;
        System.out.println("用String.concat拼接字符串的时间"+time3); 

        long start4 = System.currentTimeMillis();
        StringBuffer s4 = new StringBuffer("hello");
        for (long i = 0; i < n; i++)
        {
        	s4.append("拼接字符串的时间");
        }
        long end4 = System.currentTimeMillis();
        long time4 = end4 -start4;
        System.out.println("用StringBuffer.append拼接字符串的时间"+time4);   

        long start5 = System.currentTimeMillis();
        StringBuilder s5 = new StringBuilder("hello");
        for (long i = 0; i < n; i++)
        {
        	s5.append("拼接字符串的时间");
        }
        long end5 = System.currentTimeMillis();
        long time5 = end5 -start5;
        System.out.println("用StringBuilder.append拼接字符串的时间"+time5);   

        System.out.println("End...");
} 

}

贴出一组检测数据如下:

用String+=拼接字符串的时间27468
用String=String+拼接字符串的时间25813
用String.concat拼接字符串的时间12265
用StringBuffer.append拼接字符串的时间14
用StringBuilder.append拼接字符串的时间8
时间: 2024-09-26 03:40:20

几种拼接字符串的效率问题 .的相关文章

js两种拼接字符串的简单方法(必看)_javascript技巧

如下所示: function(msgArr) { var len = msgArr.length; var n = 0 ; var htmlSpan = ""; for (var j = 0; j < len - 1; j++) { htmlSpan += '<span>·</span>'; } htmlSpan += '<span class="on">·</span>'; var imgs = []; var

&amp;#106avascript极速狂飙:组合拼接字符串的效率

字符串     在脚本开发过程中,经常会按照某个规则,组合拼接出一个大字符串进行输出.比如写脚本控件时控制整个控件的外观的HTML标签输出,比如AJAX里得到服务器端的回传值后动态分析创建HTML标签时,不过这里我就不讨论拼接字符串的具体应用了,我只是想在这里讨论一下拼接的效率.     字符串的拼接在我们写代码的时候都是用"+="这个运算符,s += String; 这是我们最为熟知的写法,不知道大家有没有注意过没有,在组合的字符串容量有几十K甚至几百K的时候,脚本执行起来很慢,CP

JavaScript极速狂飙:组合拼接字符串的效率

javascript|字符串     在脚本开发过程中,经常会按照某个规则,组合拼接出一个大字符串进行输出.比如写脚本控件时控制整个控件的外观的HTML标签输出,比如AJAX里得到服务器端的回传值后动态分析创建HTML标签时,不过这里我就不讨论拼接字符串的具体应用了,我只是想在这里讨论一下拼接的效率.    字符串的拼接在我们写代码的时候都是用"+="这个运算符,s += String; 这是我们最为熟知的写法,不知道大家有没有注意过没有,在组合的字符串容量有几十K甚至几百K的时候,脚

JavaScript组合拼接字符串的效率对比测试

 在脚本开发过程中,经常会按照某个规则,组合拼接出一个大字符串进行输出.比如写脚本控件时控制整个控件的外观的HTML标签输出,比如AJAX里得到服务器端的回传值后动态分析创建HTML标签时,不过这里我就不讨论拼接字符串的具体应用了,我只是想在这里讨论一下拼接的效率. 字符串的拼接在我们写代码的时候都是用"+="这个运算符,s += String; 这是我们最为熟知的写法,不知道大家有没有注意过没有,在组合的字符串容量有几十K甚至几百K的时候,脚本执行起来很慢,CPU使用率狂高,例如:

JavaScript组合拼接字符串的效率对比测试_javascript技巧

在脚本开发过程中,经常会按照某个规则,组合拼接出一个大字符串进行输出.比如写脚本控件时控制整个控件的外观的HTML标签输出,比如AJAX里得到服务器端的回传值后动态分析创建HTML标签时,不过这里我就不讨论拼接字符串的具体应用了,我只是想在这里讨论一下拼接的效率. 字符串的拼接在我们写代码的时候都是用"+="这个运算符,s += String; 这是我们最为熟知的写法,不知道大家有没有注意过没有,在组合的字符串容量有几十K甚至几百K的时候,脚本执行起来很慢,CPU使用率狂高,例如: 复

JavaScript:利用StringBuffer类提升+=拼接字符串效率

1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2<html xmlns="http://www.w3.org/1999/xhtml"> 3<head> 4<meta http-equiv="Cont

JavaScript 利用StringBuffer类提升+=拼接字符串效率_javascript技巧

复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

组合查询以及拼接字符串

首先,什么情况下要用到组合查询呢?总的来说,有两种情况:一是在单个查询中从不同的表返回类似结构的数据:二是对单个表执行多个查询,按单个查询返回数据.在这里,我们说的组合查询是指第二种情况,即要查询的表是固定的,查询条件是不定的并且有多个查询条件. 从例子来看, 例如,输入相应的查询条件 1.教师不等于"0" 2.机器号等于"yang" 两个条件是"与"的关系,我们可以很容易的写出它的sql语句 select * from T_Worklog_In

java中subString、split、stringTokenizer三种截取字符串方法的性能比较(转)

  最近在阅读java.lang下的源码,读到String时,突然想起面试的时候曾经被人问过:都知道在大数据量情况下,使用String的split截取字符串效率很低,有想过用其他的方法替代吗?用什么替代?我当时的回答很斩钉截铁:没有. google了一下,发现有2中替代方法,于是在这里我将对这三种方式进行测试. 测试的软件环境为:Windows XP.eclipse.JDK1.6. 测试用例使用类ip形式的字符串,即3位一组,使用"."间隔.数据分别使用:5组.10组.100组.100