String,StringBuffer,StringBuider测试实例(转)

本文通过Java代码演示了不同字符串拼接方式的性能对比,包括String、StringBuffer及StringBuilder等,通过设置相同的循环次数来测量每种方式所需时间,并以此评估其效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


public class ttssb {


/**
* Creates a new instance of testssb
*/

final static int ttime = 3000000;// 测试循环次数

public ttssb() {

}


public void test(String s) {


long begin = System.currentTimeMillis();

for (int i = 0; i < ttime; i++) {

s += "add";

}

long over = System.currentTimeMillis();

System.out.println(" 操作 " + s.getClass().getName() + " 类型使用的时间为: "

+ (over - begin) + " 毫秒 ");

}

public void test(StringBuffer s) {

long begin = System.currentTimeMillis();

for (int i = 0; i < ttime; i++) {

s.append("add");

}

long over = System.currentTimeMillis();

System.out.println(" 操作 " + s.getClass().getName() + " 类型使用的时间为: "

+ (over - begin) + " 毫秒 ");

}

public void test(StringBuilder s) {

long begin = System.currentTimeMillis();

for (int i = 0; i < ttime; i++) {

s.append("add");

}

long over = System.currentTimeMillis();

System.out.println(" 操作 " + s.getClass().getName() + " 类型使用的时间为: "

+ (over - begin) + " 毫秒 ");

}

// 对 String 直接进行字符串拼接的测试

public void test2() {

String s2 = "abadf";

long begin = System.currentTimeMillis();

for (int i = 0; i < ttime; i++) {

String s = s2 + s2 + s2;

}

long over = System.currentTimeMillis();

System.out.println(" 操作字符串对象引用相加类型使用的时间为: "

+ (over - begin) + " 毫秒 ");

}

public void test3() {

long begin = System.currentTimeMillis();

for (int i = 0; i < ttime; i++) {

String s = "abadf" + "abadf" + "abadf";

}

long over = System.currentTimeMillis();

System.out.println(" 操作字符串相加使用的时间为: "

+ (over - begin) + " 毫秒 ");

}


public static void main(String[] args) {

String s1 = "abc";

StringBuffer sb1 = new StringBuffer("abc");

StringBuilder sb2 = new StringBuilder("abc");

ttssb t = new ttssb();

// t.test(s1);

t.test(sb1);

t.test(sb2);

// t.test2();

// t.test3();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值