Chuỗi là một lớp bất biến và đối tượng của nó không thể sửa đổi sau khi được tạo nhưng chắc chắn tham chiếu đến các đối tượng khác. Chúng rất hữu ích trong môi trường đa luồng vì nhiều luồng không thể thay đổi trạng thái của đối tượng nên các đối tượng không thay đổi được là luồng an toàn.
Bộ đệm chuỗi là các lớp có thể thay đổi, có thể được sử dụng để thực hiện hoạt động trên đối tượng chuỗi như đảo ngược chuỗi, nối chuỗi, v.v. Chúng ta có thể sửa đổi chuỗi mà không cần tạo đối tượng mới của chuỗi. Bộ đệm chuỗi cũng an toàn cho chuỗi.
Ngoài ra, toán tử chuỗi concat + sử dụng nội bộ lớp StringBuffer hoặc StringBuilder. Dưới đây là những điểm khác biệt.
Sr. Không. | Phím | Chuỗi | StringBuffer |
---|---|---|---|
1 | Cơ bản | Chuỗi là một lớp bất biến và không thể sửa đổi đối tượng của nó sau khi nó được tạo | Bộ đệm chuỗi là các lớp có thể thay đổi có thể được sử dụng để thực hiện hoạt động trên đối tượng chuỗi |
2 | Phương thức | Các phương thức không được đồng bộ hóa | Tất cả các phương thức được đồng bộ hóa trong lớp này. |
3 | Hiệu suất | Nó nhanh | Nhiều luồng không thể truy cập cùng lúc do đó chậm |
4. | Vùng nhớ | I f a Chuỗi được tạo bằng cách sử dụng hàm tạo hoặc phương thức sau đó các chuỗi đó sẽ được lưu trữ trong Bộ nhớ Heap cũng như SringConstantPool | Không gian đống |
Ví dụ về chuỗi
public class Main { public static void main(String args[]) { String s1 = "Hello Tutorials Point"; String upperCase = s1.toUpperCase(); System.out.println(upperCase); } }
Ví dụ về StringBuffer
public class StringBufferExample{ public static void main(String[] args){ StringBuffer buffer=new StringBuffer("Hi"); buffer.append("Java 8"); System.out.println("StringBufferExample" +buffer); } }