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

Sự khác biệt giữa String và StringBuffer trong Java

Trong bài viết này, chúng ta sẽ tìm hiểu sự khác biệt giữa lớp String và StringBuffer trong Java.

String

  • Là lớp bất biến (immutable) - không thể thay đổi nội dung sau khi tạo
  • Chậm hơn khi thao tác nối chuỗi
  • Tốn ít bộ nhớ hơn khi nối chuỗi (vì tạo instance mới mỗi lần)
  • Ghi đè phương thức equals() của Object → có thể dùng equals() để so sánh

Ví dụ String

public class StringDemo {
    public static void main(String args[]) {
        String palindrome = "Dot saw I was Tod";
        int len = palindrome.length();
        System.out.println("String Length is : " + len);
    }
}

StringBuffer

  • Là lớp có thể thay đổi (mutable)
  • Nhanh hơn khi thao tác nối chuỗi
  • Sử dụng ít bộ nhớ hơn khi nối chuỗi (sửa đổi trực tiếp)
  • KHÔNG ghi đè equals() của Object → không nên dùng equals() để so sánh

Ví dụ StringBuffer

public class Demo {
    public static void main(String args[]) {
        StringBuffer sBuffer = new StringBuffer("test");
        sBuffer.append(" String Buffer");
        System.out.println(sBuffer);
    }
}