Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Khi nào nên dùng StringBuffer/StringBuilder thay vì String trong Java?


  • Đối tượng lớp String là bất biến (immutable), trong khi đối tượng StringBuffer và StringBuilder là có thể thay đổi (mutable).
  • StringBuffer được đồng bộ (synchronized), StringBuilder không đồng bộ.
  • Toán tử nối chuỗi + nội bộ được triển khai bằng StringBuffer hoặc StringBuilder.
  • Nếu giá trị đối tượng không thay đổi, dùng String vì nó bất biến.
  • Nếu giá trị đối tượng có thể thay đổi và chỉ được truy cập từ một luồng (single thread), dùng StringBuilder vì nó không đồng bộ.
  • Nếu giá trị đối tượng có thể thay đổi và sẽ được sửa đổi bởi nhiều luồng, dùng StringBuffer vì nó đồng bộ.