java中StringBuilder清空效率比较

都知道如果多个字符串拼接的话,用StringBuilder.append会比str+=""效率高很多

因为不用创建string对象和数组拷贝,

在jdk1.5中测试了3中方法清空builder

package com.jb.efile.model;

import java.io.IOException;

public class Test {
	private static long time;
	public static void main(String[] args) throws IOException {
		StringBuilder builder = new StringBuilder();
		time = System.currentTimeMillis();
		for(int i=0;i<10000000;i++){
			builder = new StringBuilder();
			builder.append("aa");
			builder.append("bb");
			builder.append("cc");
			builder.append("dd");
			builder.append("ee");
		}
		System.out.println("new 耗时:" + (System.currentTimeMillis() - time));
		for(int i=0;i<10000000;i++){
			builder.delete(0, builder.length());
			builder.append("a");
			builder.append("b");
			builder.append("c");
			builder.append("d");
			builder.append("e");
		}
		System.out.println("delete 耗时:" + (System.currentTimeMillis() - time));
		for(int i=0;i<10000000;i++){
			builder.setLength(0);
			builder.append("1a");
			builder.append("1b");
			builder.append("1c");
			builder.append("1d");
			builder.append("1e");
		}
		System.out.println("setLenth=0 耗时:" + (System.currentTimeMillis() - time));
	}
}
输出:

new 耗时:1146
delete 耗时:2268
setLenth=0 耗时:3371

所以本人测试时new效率会高,但是网上很多人测试说delete效率高,希望大家拷贝代码到自己的环境中亲子测试下

你可能感兴趣的:(java基础)