首页 > 其他 > 详细

StringBuilder和StringBuffer

时间:2020-05-16 12:38:28      阅读:50      评论:0      收藏:0      [点我收藏+]

StringBuilder和StringBuffer

因为String拼接的时候, 每拼接一次都会创建一个新的字符串, 特别再处理很多字符串拼接的时候, 效率非常慢, StringBuilder一般就是常用来更加快速的拼接字符串StringBuilder和StringBuffer本质上一样, 都是更为高效的拼接字符串, 但是由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

常用类

返回值 方法 作用
StringBuilder append(重载参数) 更加快速的拼接字符串, 一般重载参数最常用的是String类型
String toString() 把StringBuilder转为String字符串

性能测试

public class Test3_StringBuilder {
	public static void main(String[] args) {
		method();
		method2();
	}

	// 使用+拼接字符串
	public static void method() {
		// 创建字符串
		String str = "abcdefghijklmn";
		String res = "";// 定义变量, 记录拼接结果
		// 把指定的字符串拼接100次并且打印 拼接结果
		long start  = System.currentTimeMillis(); // 计时开始
		for (int i = 0; i < 10000; i++) {
			res = res + str; // 通过+拼接字符串
		}
		long end = System.currentTimeMillis(); // 计时结束
		System.out.println((end-start)/1000.0);
	}
    
    // 使用StringBuilder拼接字符串
	private static void method2() {
		String str = "abcdefghijklmn";
		StringBuilder sb = new StringBuilder();
		long start = System.currentTimeMillis();
		for (int i = 0; i < 10000; i++) {
			sb.append(str);
		}
		long end = System.currentTimeMillis();
		System.out.println((end - start) / 1000.0);
	}
}

测试结果

0.582 // String 的 + 号拼接字符串(单位: s)
0.001 // StringBuilder拼接字符串(单位: s)

StringBuilder和StringBuffer

原文:https://www.cnblogs.com/zpKang/p/12898844.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!