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

Mục lục:

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

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

Video: Sự khác biệt giữa String StringBuffer và StringBuilder trong Java
Video: Java Cơ Bản - So sánh StringBuilder và StringBuffer 2024, Tháng mười một
Anonim

Sự khác biệt chính - Chuỗi so với StringBuffer và StringBuilder trong Java

String, StringBuffer và String Builder là các lớp trong Java. Chuỗi được sử dụng rộng rãi trong lập trình Java. Khi một đối tượng của String được tạo, không thể thay đổi chúng. Mỗi khi một thay đổi xảy ra đối với Chuỗi, nó sẽ tạo ra một Chuỗi mới. Ngay cả khi nó là một nối với một Chuỗi hiện có, nó sẽ tạo ra một Chuỗi mới. Điều này gây ra sự lãng phí bộ nhớ. Các lớp StringBuffer và StringBuilder trong Java được sử dụng để sửa đổi String. Sự khác biệt chính giữa String, StringBuffer và StringBuilder trong Java là String là một lớp để tạo một đối tượng kiểu String là một chuỗi các ký tự, StringBuffer là một lớp được sử dụng để sửa đổi các Chuỗi cung cấp an toàn cho luồng và StringBuilder là một lớp được sử dụng để sửa đổi các Chuỗi không cung cấp an toàn cho luồng.

Chuỗi trong Java là gì?

Lớp chuỗi nằm trong gói java.lang. Mỗi khi lập trình viên tạo một String, nó là một đối tượng kiểu String. Chuỗi là bất biến có nghĩa là một khi đối tượng được tạo ra, nó không thể thay đổi được. Các đối tượng được tạo bằng cách sử dụng các lớp wrapper như Integer, Byte, Float, Double cũng là bất biến. Một chuỗi ký tự được đặt trong dấu ngoặc kép. ví dụ. "Chào thế giới". Mỗi khi một chuỗi ký tự được tạo, Máy ảo Java (JVM) sẽ kiểm tra nhóm hằng chuỗi. Nếu Chuỗi tồn tại, một tham chiếu đến nhóm hằng chuỗi được trả về. Nếu đó là một Chuỗi mới, đối tượng đó sẽ được tạo trong nhóm hằng chuỗi.

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

Hình 01: Chương trình Java sử dụng String, StringBuffer và StringBuilder

Tham khảo đoạn mã bên dưới.

String s1=“Xin chào”;

s1=s1 + “Thế giới”;

System.out.println (s1);

Trong câu lệnh đầu tiên, s1 đề cập đến "Hello" trong nhóm hằng chuỗi. Trong câu lệnh thứ hai, JVM không thay đổi Chuỗi hiện có. Thay vào đó, nó tạo một Chuỗi mới là “Hello World” và s1 hiện đang tham chiếu đến Chuỗi mới đó. Đối tượng “Xin chào” đang thoát vẫn tồn tại trong nhóm hằng chuỗi.

Nếu có mã, String s1="Xin chào";

Chuỗi s2=s1;

s1, s2 cả hai sẽ tham chiếu đến đối tượng Chuỗi “Xin chào”.

StringBuffer trong Java là gì?

Lớp StringBuffer được sử dụng để làm cho các đối tượng String có thể thay đổi được. Do đó, những đối tượng đó có thể được sửa đổi. StringBuffer định nghĩa bốn hàm tạo. StringBuffer (), StringBuffer (int size), StringBuffer (String str), StringBuffer (charSequence ch)

Tham khảo mã bên dưới, StringBuffer s1=new StringBuffer (“Xin chào”);

s1.append (“Thế giới”);

System.out.println (s1);

Trong câu lệnh 1, s1 đề cập đến đối tượng “Xin chào” trong một đống. Đối tượng có thể thay đổi vì nó được tạo bằng cách sử dụng StringBuffer. Trong câu lệnh 2, “World” được thêm vào cùng một đối tượng Chuỗi “Hello”.

Đối tượng chuỗi được tạo bằng lớp StringBuffer có thể tiết kiệm bộ nhớ. StringBuffer cung cấp sự an toàn cho luồng vì hai luồng không thể truy cập đồng thời cùng một phương thức trong lớp StringBuffer. Giảm độ an toàn của chuỗi hiệu suất StringBuffer. Lớp StringBuffer chứa các phương thức như append (), insert (), reverse (), Replace ().

StringBuilder trong Java là gì?

Lớp StringBuilder được sử dụng để làm cho các đối tượng String có thể thay đổi được. Do đó, những đối tượng đó có thể được sửa đổi. Chức năng tương tự như StringBuffer, nhưng điều này không mang lại sự an toàn cho luồng. StringBuilder có các hàm tạo như StringBuilder (), StringBuilder (int size), StringBuilder (String str).

Tham khảo mã bên dưới.

StringBuilder s1=new StringBuilder (“Xin chào”);

s1.append (“Thế giới”);

System.out.println (s1);

Trong câu lệnh 1, s1 đề cập đến đối tượng “Xin chào” trong một đống. Đối tượng có thể thay đổi vì nó được tạo bằng StringBuilder. Trong câu lệnh 2, “World” được thêm vào cùng một đối tượng Chuỗi “Hello”. Không có tạo đối tượng Chuỗi hoàn toàn mới.

Đối tượng chuỗi được tạo bằng lớp StringBuilder có thể tiết kiệm bộ nhớ. Không giống như trong StringBuffer, StringBuilder không cung cấp sự an toàn cho luồng vì hai luồng có thể truy cập đồng thời cùng một phương thức trong lớp StringBuilder. Lớp StringBuilder chứa các phương thức như append (), insert (), reverse (), Replace ().

Sự giống nhau giữa String, StringBuffer và StringBuilder trong Java là gì?

Tất cả đều có thể được sử dụng để tạo Chuỗi

Sự khác biệt giữa String StringBuffer và StringBuilder trong Java là gì?

String so với StringBuffer và StringBuilder

Chuỗi Chuỗi là một lớp Java được sử dụng để tạo một đối tượng kiểu Chuỗi, là một chuỗi các ký tự.
StringBuffer StringBuffer là một lớp Java được sử dụng để tạo các đối tượng Chuỗi, có thể được sửa đổi với độ an toàn của chuỗi.
StringBuilder StringBuilder là một lớp được sử dụng để tạo các đối tượng chuỗi, có thể được sửa đổi mà không đảm bảo an toàn cho chuỗi.
Tính đột biến
Chuỗi Chuỗi là một lớp bất biến.
StringBuffer StringBuffer là một lớp có thể thay đổi.
StringBuilder StringBuilder là một lớp có thể thay đổi.
An toàn luồng
Chuỗi Phương pháp của Chuỗi là chủ đề an toàn.
StringBuffer Phương thức của StringBuffer an toàn và được đồng bộ hóa.
StringBuilder Các phương thức của StringBuilder không được phân luồng an toàn và không được đồng bộ hóa.
Hiệu suất
Chuỗi Chuỗi nhanh.
StringBuffer StringBuffer chậm.
StringBuilder StringBuilder nhanh chóng.

Tóm tắt - String vs StringBuffer vs StringBuilder trong Java

String, StringBuffer và StringBuilder có vẻ giống nhau, nhưng chúng có ý nghĩa khác nhau. Tất cả chúng đều là các lớp Java. Sự khác biệt giữa String, StringBuffer và StringBuilder trong Java là, String là lớp để tạo một đối tượng kiểu String, là một tập hợp các ký tự, StringBuffer là một lớp được sử dụng để sửa đổi các Chuỗi và cung cấp an toàn cho luồng, trong khi StringBuilder là một lớp được sử dụng để sửa đổi các Chuỗi không cung cấp an toàn cho chuỗi.

Tải xuống PDF String vs StringBuffer vs StringBuilder trong Java

Bạn có thể tải xuống phiên bản PDF của bài viết này và sử dụng nó cho mục đích ngoại tuyến theo ghi chú trích dẫn. Vui lòng tải xuống phiên bản PDF tại đây Sự khác biệt giữa String StringBuffer và StringBuilder trong Java

Đề xuất: