
Biểu đồ so sánh
Cơ sở để so sánh | Chuỗi | StringBuffer |
---|---|---|
Căn bản | Độ dài của đối tượng String là cố định. | Độ dài của StringBuffer có thể được tăng lên. |
Sửa đổi | Đối tượng chuỗi là bất biến. | Đối tượng StringBuffer có thể thay đổi. |
Hiệu suất | Nó là chậm hơn trong quá trình nối. | Nó là nhanh hơn trong quá trình nối. |
Ký ức | Tiêu thụ nhiều bộ nhớ hơn. | Tiêu thụ ít bộ nhớ. |
Lưu trữ | Chuỗi liên tục pool. | Bộ nhớ đống. |
Định nghĩa chuỗi
Chuỗi String là một lớp trong Java. Đối tượng của Chuỗi lớp có độ dài cố định và quan trọng nhất cần nhớ, đối tượng của lớp Chuỗi là Hồi bất biến. Khi bạn khởi tạo đối tượng String, bạn không thể sửa đổi đối tượng đó một lần nữa. Đối tượng của Chuỗi lớp được lưu trữ trong nhóm hằng chuỗi.
Trước tiên chúng ta hãy hiểu rằng, bất cứ khi nào bạn tạo bất kỳ chuỗi nào; bạn tạo một đối tượng của kiểu chuỗi. Các hằng chuỗi cũng là các đối tượng chuỗi.
System.out.println ("Xin chào, đây là Giải pháp Teckpix");
Trong câu lệnh trên, chuỗi này Xin chào, đây là Teckpix Solution, là một hằng chuỗi.
Bây giờ chúng ta hãy hiểu tính khả biến của đối tượng String với sự trợ giúp của một ví dụ.
Chuỗi str = Chuỗi mới ("Teckpix"); str.concat ("Giải pháp"); system.out.println (str); // đầu ra Teckpix
Trong đoạn mã trên, tôi đã cố gắng ghép hai chuỗi dây Teckpix và một giải pháp. Như chúng ta biết bất cứ khi nào một chuỗi được tạo có nghĩa là đối tượng của kiểu String được tạo. Do đó, chuỗi Teckpix Hướng tạo ra một đối tượng, có tham chiếu được gán cho đối tượng chuỗi đó là str str. Tiếp theo, tôi đã thử nối một chuỗi khác Solution Solution với chuỗi Chuỗi Teckpix phối bằng cách sử dụng phương thứciên concat () của chuỗi lớp.

Định nghĩa của StringBuffer
Lớp String String Stringuffuff là lớp ngang hàng của lớp Chuỗi String. Lớp StringBuffer cung cấp nhiều chức năng hơn cho các chuỗi. Đối tượng của lớp StringBuffer có thể thay đổi là đối tượng của nó có thể được sửa đổi. Độ dài của đối tượng StringBuffer có thể phát triển được. Bạn có thể chèn các ký tự hoặc chuỗi con ở giữa chuỗi ký tự được gán cho đối tượng StringBuffer hoặc ở cuối của nó. StringBuffer phân bổ không gian cho 16 ký tự bổ sung khi không yêu cầu độ dài cụ thể.
Hãy cho chúng tôi hiểu khả năng biến đổi của đối tượng StringBuffer với sự trợ giúp của một ví dụ:

StringBuffre Sb = new StringBuffer ("Teckpix"); Sb.append ("Giải pháp"); system.out.println (Sb); // Giải pháp Teckpix đầu ra
Như chúng ta biết rằng đối tượng StringBuffer có thể thay đổi. Phương thức append () sửa đổi đối tượng StringBuffer Sb mà ban đầu, tham chiếu của đối tượng Khăn Teckpix ấn được gán trước đó. Phương thức append () nối thêm chuỗi mới Giải pháp chữ lồng, đến cuối chuỗi ký tự theo nghĩa đen Teckpix. Bây giờ khi tôi in đối tượng Sb, nó sẽ in đối tượng chuỗi đã sửa đổi, Teckpix Solutions, đã được sửa đổi.
Sự khác biệt chính giữa String và StringBuffer
- Độ dài của đối tượng String là cố định nhưng chiều dài của đối tượng StringBuffer có thể tăng lên khi được yêu cầu.
- Đối tượng chuỗi là bất biến, tức là đối tượng của nó không thể được gán lại lần nữa trong khi đó, đối tượng của StringBuffer có thể thay đổi.
- Đối tượng chuỗi có hiệu suất chậm hơn trong khi đối tượng StringBuffer nhanh hơn.
- Đối tượng chuỗi tiêu thụ nhiều bộ nhớ hơn trong khi các đối tượng StringBuffer tiêu thụ ít bộ nhớ hơn.
- Các đối tượng chuỗi được lưu trữ trong một nhóm không đổi trong khi đó, các đối tượng StringBuffer được lưu trữ trên bộ nhớ heap.
Phần kết luận:
Các đối tượng StringBuffer cung cấp nhiều chức năng hơn cho các chuỗi so với Chuỗi lớp. Do đó, tốt hơn là làm việc với StringBuffer thay vì String lớp.