String,StringBuffer,StringBuilder性能分析

来源:互联网 发布:人工智能真的来了杨澜 编辑:程序博客网 时间:2024/04/29 18:26
import java.text.SimpleDateFormat;import java.util.Date;/*功能:String,StringBufffer,StringBuilder性能分析 *实现:循环执行前后分别记录系统时间,循环执行后计算循环执行时间 *Date:2014-5-14 *Author:何龙 *QQ:471628912 */public class StringTest {final static int time = 50000;// 测试循环次数// 熟练掌握日期处理public StringTest() {Date nowTime = new Date(System.currentTimeMillis());SimpleDateFormat tFormat = new SimpleDateFormat("yyyy-MM-dd");String time = tFormat.format(nowTime);System.out.println("系统当前时间为:" + time);}// 测试String类操作时所需时间public void test(String s) {long begin = System.currentTimeMillis();for (int i = 0; i < time; i++) {s += "add";}long over = System.currentTimeMillis();System.out.println("操作" + s.getClass().getName() + "类型使用的时间为"+ (over - begin) + "毫秒");}// 测试StringBuffer类操作所需时间public void test2(StringBuffer s) {long begin = System.currentTimeMillis();for (int i = 0; i < time; i++) {s.append("add");}long over = System.currentTimeMillis();System.out.println("操作" + s.getClass().getCanonicalName() + "类型使用的时间为:"+ (over - begin) + "毫秒");}//  测试StringBuilder类的操作所需时间public void test3(StringBuilder s) {long begin = System.currentTimeMillis();for (int i = 0; i < time; i++) {s.append("add");}long over = System.currentTimeMillis();System.out.println("操作" + s.getClass().getName() + "类型使用的时间为:"+ (over - begin) + "毫秒");}// 对String直接进行字符串拼接测试(包括操作引用和直接操作两种)public void test4() {String s2 = "abcd";long begin = System.currentTimeMillis();for (int i = 0; i < time; i++) {String s = s2 + s2 + s2;}long over = System.currentTimeMillis();System.out.println("操作字符串对象引用相加类型使用的时间为:" + (over - begin) + "毫秒");}public void test5() {long begin = System.currentTimeMillis();for (int i = 0; i < time; i++) {String s = "abcd" + "abcd" + "abcd";}long over = System.currentTimeMillis();System.out.println("操作字符串相加使用的时间为:" + (over - begin) + "毫秒");}public static void main(String args[]) {String s1 = "abcd";StringBuffer s2 = new StringBuffer("abcd");StringBuilder s3 = new StringBuilder("abcd");StringTest tt = new StringTest();System.out.println("计算String,StringBuffer,StringBuilder的时间需求:");tt.test(s1); // String操作tt.test2(s2);// StringBuffer操作tt.test3(s3);// StringBuilder操作tt.test4();// String引用tt.test5();// Sting直接相加}}

测试结果:


0 0
原创粉丝点击