From 00a5c68f2254620fd58252fd2224222ec5515e03 Mon Sep 17 00:00:00 2001 From: seahi Date: Thu, 7 Nov 2024 18:37:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=AF=94String=E3=80=81StringBuilder?= =?UTF-8?q?=E3=80=81StringBuffer=E6=97=B6=E9=97=B4=E6=95=88=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chapter5/Example09.java | 59 +++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/chapter5/Example09.java diff --git a/src/chapter5/Example09.java b/src/chapter5/Example09.java new file mode 100644 index 0000000..3e53434 --- /dev/null +++ b/src/chapter5/Example09.java @@ -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 + + } + +}