对比String、StringBuilder、StringBuffer时间效率

This commit is contained in:
seahi 2024-11-07 18:37:03 +08:00
parent 8f3a52c938
commit 00a5c68f22

View File

@ -0,0 +1,59 @@
package chapter5;
public class Example09 {
private static final int TIMES = 100000;
public static void main(String[] args) {
testString();
testStringBuffer();
testStringBuilder();
test();
}
// String时间效率
public static void testString() {
long start = System.currentTimeMillis();
String str = "";
for (int i = 0; i < TIMES; i++) {
str += "test";
}
long end = System.currentTimeMillis();
System.out.println("String测试耗时" + (end - start) + "ms");
}
// StringBuffer时间效率线程安全
public static void testStringBuffer() {
long start = System.currentTimeMillis();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < TIMES; i++) {
sb.append("test");
}
long end = System.currentTimeMillis();
System.out.println("StringBuffer测试耗时" + (end - start) + "ms");
}
// StringBuilder时间效率非线程安全
public static void testStringBuilder() {
long start = System.currentTimeMillis();
StringBuilder sb = new StringBuilder("hello");
for (int i = 0; i < TIMES; i++) {
sb.append("test");
}
long end = System.currentTimeMillis();
System.out.println("StringBuilder测试耗时" + (end - start) + "ms");
}
public static void test() {
String s1 = new String("abc");
String s2 = new String("abc");
System.out.println(s1.equals(s2)); // 打印结果为true
StringBuffer sb1 = new StringBuffer("abc");
StringBuffer sb2 = new StringBuffer("abc");
System.out.println(sb1.equals(sb2)); // 打印结果为false
StringBuilder sbr1=new StringBuilder("abc");
StringBuilder sbr2=new StringBuilder("abc");
System.out.println(sbr1.equals(sbr2)); // 打印结果为false
}
}