• Skip to main content
  • Bỏ qua primary sidebar
  • Bài học Toán lớp 1
  • Học tiếng Anh
  • CNTT
  • Giáo dục
  • Nghe Nhạc

Học hỏi Net

Mạng học hỏi cho học sinh và cuộc sống

Bạn đang ở:Trang chủ / Lập trình Java / So sánh lớp StringBuffer và StringBuilder trong Java

So sánh lớp StringBuffer và StringBuilder trong Java

04/03/2021 by Minh Đạo

1. So sánh lớp StringBuffer và StringBuilder

Có nhiều điểm khác nhau giữa lớp  StringBuffer và StringBuilder trong Java. Bảng dưới liệt kê các điểm khác nhau này:

Lớp StringBuffer Lớp StringBuilder
Lớp StringBuffer là đồng bộ (synchronized), tức là an toàn luồng (thread safe). Nghĩa là hai Thread không thể gọi đồng thời các phương thức của lớp StringBuffer StringBuilder là không đồng bộ (non-synchronized) tức là không an toàn luồng. Nghĩa là hai Thread có thể gọi đồng thời các phương thức của lớp StringBuilder
StringBuffer là kém hiệu quả hơn StringBuilder StringBuilder là hiệu quả hơn StringBuffer

2. Ví dụ về lớp StringBuffer trong Java

public class BufferTest {
  public static void main(String[] args) {
    StringBuffer buffer = new StringBuffer("hello");
    buffer.append("java");
    System.out.println(buffer);
  }
}

Chương trình trên sẽ cho kết quả dạng:

hellojava

3. Ví dụ về lớp StringBuilder trong Java

public class BuilderTest {
  public static void main(String[] args) {
    StringBuilder builder = new StringBuilder("hello");
    builder.append("java");
    System.out.println(builder);
  }
}

Chương trình trên sẽ cho kết quả dạng:

hellojava

4. Kiểm tra hiệu suất của lớp StringBuffer và StringBuilder trong Java

Bạn thử ví dụ đơn giản sau để kiểm tra hiệu suất của lớp StringBuffer và lớp StringBuilder trong Java:

public class ConcatTest {
  public static void main(String[] args) {
    long startTime = System.currentTimeMillis();
    StringBuffer sb = new StringBuffer("Java");
    for (int i = 0; i < 10000; i++) {
      sb.append("Vietjack");
    }
    System.out.println("Thoi gian tieu ton boi StringBuffer: " + (System.currentTimeMillis() - startTime) + "ms");
    startTime = System.currentTimeMillis();
    StringBuilder sb2 = new StringBuilder("Java");
    for (int i = 0; i < 10000; i++) {
      sb2.append("Vietjack");
    }
    System.out.println("Thoi gian tieu ton boi StringBuilder: " + (System.currentTimeMillis() - startTime) + "ms");
  }
}

Chương trình trên sẽ cho kết quả dạng:

Time taken by StringBuffer: 16ms
Time taken by StringBuilder: 0ms

Trên đây là bài viết so sánh lớp String Buffer và String Builder trong Java. StringBuffer cùng không quá khác với  String Builder  nên chúng ta tùy thuộc vào bài toán, hiệu suất hay bộ nhớ để chúng ta có thể chon lựa. Trên thực tế, chúng ta thường kết hợp chúng với nhau để tối ưu nhất. Chúc các bạn thành công!

Thuộc chủ đề:Lập trình Java Tag với:Java

Bài liên quan:

  1. Tạo Javadoc
  2. Cơ bản về Applet trong Java
  3. Thread trong Java
  4. Gửi Email trong Java
  5. Lập trình mạng Socket trong Java
  6. Serialization trong Java
  7. Generic trong Java
  8. Custom Exception trong Java
  9. ExceptionHandling và Ghi đè phương thức trong Java
  10. Từ khóa throws trong Java

Sidebar chính

Bài viết mới

  • Giải bài tập Toán lớp 3 Bài: Luyện tập chung 17/03/2021
  • Giải bài tập Toán lớp 3 Bài: Ôn tập về giải toán 17/03/2021
  • Giải bài tập Toán lớp 3 Bài: Ôn tập về hình học 17/03/2021
  • Giải bài tập Toán lớp 3 Bài: Ôn tập về đại lượng 17/03/2021
  • Giải bài tập Toán lớp 3 Bài: Ôn tập bốn phép tính trong phạm vi 100000 17/03/2021

Chuyên mục

  • Bài học Công nghệ 6 (32)
  • Bài học Công Nghệ 7 (60)
  • Bài học Địa lý 6 (27)
  • Bài học Địa lý 7 (61)
  • Bài học GDCD 6 (18)
  • Bài học GDCD 7 (18)
  • Bài học Lịch sử 6 (23)
  • Bài học Lịch sử 7 (29)
  • Bài học Ngữ Văn 6 (97)
  • Bài học Ngữ Văn 7 (101)
  • Bài học Sinh 6 (50)
  • Bài học Sinh 7 (61)
  • Bài học Tiếng Việt lớp 5 (258)
  • Bài học Tin học 6 (30)
  • Bài học Tin học 7 (23)
  • Bài học Toán 6 (67)
  • Bài học Toán 7 (54)
  • Bài học Toán lớp 1 (61)
  • Bài học Toán lớp 2 (92)
  • Bài học Toán lớp 3 (75)
  • Bài học Toán lớp 4 (63)
  • Bài học Toán lớp 5 (57)
  • Bài học Vật lý 6 (30)
  • Bài học Vật lý 7 (30)
  • CNTT (3)
  • Family and Friends 1 (62)
  • Family and Friends 2 (80)
  • Family and Friends 3 (80)
  • Family and Friends 4 (84)
  • Family and Friends 5 (76)
  • Giải SGK Tiếng Anh 5 mới (67)
  • Giải SGK Tiếng Anh 6 mới (102)
  • Giải SGK Tiếng Anh 7 mới (98)
  • Giải SGK Tiếng Anh lớp 3 (68)
  • Giải SGK Tiếng Anh lớp 4 (68)
  • Giải SGK Toán 3 (77)
  • Giáo dục (178)
  • Học tiếng Anh (105)
  • Lập trình HTML và CSS (83)
  • Lập trình Java (110)
  • Nghe Nhạc (1)
  • Tiếng Anh lớp 1 Macmillan (24)
  • Tiếng Anh lớp 2 Macmillan (23)
  • Tiếng Việt lớp 5 sách VNEN (105)

Copyright © 2021 · Hocz.Net.
Hoc Tap vn - Học Trắc nghiệm - Học Giải - Môn Toán - Sách toán - eBook Toán - Giai Bai tap hay - Lop 12