Java2024/src/chapter5/Example09.java

60 lines
1.9 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}
}