Bài 342: Sự khác nhau giữa StringBuffer và StringBuilder trong java

Ngày đăng: 1/7/2023 1:28:57 PM

Sự khác nhau giữa StringBuffer và StringBuilder trong java

Sự khác nhau giữa StringBuffer và StringBuilder trong java được thể hiện trong bảng sau:

No. StringBuffer

StringBuilder

1)

StringBuffer là đồng bộ (synchronized) tức là luồng an toàn. Điều này có nghĩa là không thể có 2 luồng cùng truy cập phương thức của lớp StringBuffer đồng thời.

StringBuilder là không đồng bộ (non-synchronized) tức là luồng không an toàn. Điều này có nghĩa là có 2 luồng cùng truy cập phương thức của lớp StringBuilder đồng thời.

2) StringBuffer không hiệu quả bằng StringBuilder.

StringBuilder hiệu quả hơn StringBuffer.

Ví dụ về StringBuffer trong java

1

2

3

4

5

6

7    

public class BufferTest {

 public static void main(String[] args) {

  StringBuffer buffer = new StringBuffer("hello");

  buffer.append("java");

  System.out.println(buffer);

 }

}

Output:

 hellojava
 

Ví dụ về StringBuilder trong java

1

2

3

4

5

6

7   

public class BuilderTest {

 public static void main(String[] args) {

  StringBuilder builder = new StringBuilder("hello");

  builder.append("java");

  System.out.println(builder);

 }

}

Output:

 hellojava
 

Test hiệu suất của StringBuffer và StringBuilder trong java trong java

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18    

public class ConcatTest {

 public static void main(String[] args) {

  long startTime = System.currentTimeMillis();

  StringBuffer sb = new StringBuffer("Java");

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

   sb.append("Hello");

  }

  System.out.println("Thời gian nối chuỗi của StringBuffer: "

    + (System.currentTimeMillis() - startTime) + "ms");

  startTime = System.currentTimeMillis();

  StringBuilder sb2 = new StringBuilder("Java");

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

   sb2.append("Hello");

  }

  System.out.println("Thời gian nối chuỗi của StringBuilder: "

    + (System.currentTimeMillis() - startTime) + "ms");

 }

}

Output:

 Thời gian nối chuỗi của StringBuffer: 11ms
 Thời gian nối chuỗi của StringBuilder: 5ms

Nguồn tin: viettuts.vn