java入门---字符串实例操作之连接字符串

    以下实例演示了通过 "+" 操作符和StringBuffer.append() 方法来连接字符串,并比较其性能:

public class StringConcatenate {
    public static void main(String[] args){
        long startTime = System.currentTimeMillis();
        for(int i=0;i<5000;i++){
            String result = "This is"
            + "testing the"
            + "difference"+ "between"
            + "String"+ "and"+ "StringBuffer";
        }
        long endTime = System.currentTimeMillis();
        System.out.println("字符串连接"
        + " - 使用 + 操作符 : "
        + (endTime - startTime)+ " ms");
        long startTime1 = System.currentTimeMillis();
        for(int i=0;i<5000;i++){
            StringBuffer result = new StringBuffer();
            result.append("This is");
            result.append("testing the");
            result.append("difference");
            result.append("between");
            result.append("String");
            result.append("and");
            result.append("StringBuffer");
        }
        long endTime1 = System.currentTimeMillis();
        System.out.println("字符串连接"
        + " - 使用 StringBuffer : "
        + (endTime1 - startTime1)+ " ms");
    }
}

    以上代码实例输出结果为:

字符串连接 - 使用 + 操作符 : 0 ms
字符串连接 - 使用 StringBuffer : 6 ms

    +为每个字符串变量赋值,公用一个内值,占用一份内存空间;"StringBuffer"每次新建一个新对象,内存分配新的空间,新分配5000份内存空间:

public class StringConcatenate {
    public static void main(String[] args){
        long startTime = System.currentTimeMillis();
        String[] strArr = new String[500];
        for(int i=0;i<500;i++){
            String result = "This is";
            strArr[i]=String.valueOf(result.hashCode());
        }
        long endTime = System.currentTimeMillis();
        System.out.println("字符串连接" 
        + " - 使用 + 操作符 : " 
        + (endTime - startTime)+ " ms");
        System.out.println(strArr[0]+"\n"+strArr[1]+"\n"+strArr[2]);
        long startTime1 = System.currentTimeMillis();
        for(int i=0;i<500;i++){
            StringBuffer result = new StringBuffer();
            result.append("This is");
            strArr[i]=String.valueOf(result.hashCode());
        }
        long endTime1 = System.currentTimeMillis();
        System.out.println("字符串连接" 
        + " - 使用 StringBuffer : "
        + (endTime1 - startTime1)+ " ms");
        System.out.println(strArr[0]+"\n"+strArr[1]+"\n"+strArr[2]);
    }
}

    打印结果为:

字符串连接-使用+操作符:1ms
-1027042079
-1027042079
-1027042079
字符串连接-使用StringBuffer操作符:2ms1167165921
1442002549
1383884648
阅读更多

扫码向博主提问

luyaran

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • PHP
  • MySQL
  • shell
  • jQuery
  • js
去开通我的Chat快问
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/luyaran/article/details/80353425
个人分类: 原创
所属专栏: Java学习之路
上一篇java入门---字符串实例操作之字符串格式化
下一篇java入门---数组操作实例之数组排序及元素查找
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭