Phương thức | Mô tả |
---|---|
append() | Phương thức này nối thêm một chuỗi hoặc một mảng ký tự tại vị trí cuối cùng của một đối tượng StringBuffer. Ví dụ: StringBuffer s1 = new StringBuffer(“Good”); s1.append(“evening”); s1 bây giờ là goodevening |
insert() | Phương thức này lấy hai tham số. Tham số đầu tiên là vị trí chèn. Tham số thứ hai có thể là một chuỗi, một ký tự (char), một giá trị nguyên (int), hay một giá trị số thực (float) được chèn vào. Vị trí chèn sẽ lớn hơn hay bằng đến 0, và nhỏ hơn hay bằng chiều dài của đối tượng Stringbuffer. Bất kỳ đối số nào, trừ ký tự hoặc chuỗi, được chuyển vào biểu mẫu chuỗi, và sau đó được chèn vào. Ví dụ: StringBuffer str = new StringBuffer(“Java sion”); str.insert(1,’b’); Biến “str” chứa chuỗi “Java sion”. |
charAt() | Phương thức này trả về một giá trị ký tự trong đối tượng StringBuffer tại vị trí được chỉ định. Ví dụ: StringBuffer str = new StringBuffer(“James Gosling”); char letter = str.charAt(6); //chứa “G” |
setCharAt() | Phương thức này được sử dụng để thay thế ký tự trong một StringBuffer với những cái khác tại một vị trí được chỉ định. Ví dụ: StringBuffer name = new StringBuffer(“Java”); name.setCharAt(2,’v’); Biến “name” chứa “Java”. |
setLength() | Phương thức này thiết lập chiều dài của đối tượng StringBuffer. Nếu chiều dài được chỉ định nhỏ hơn chiều dài nguyên thuỷ của bộ nhớ trung gian, thì các ký tự thừa sẽ bị cắt bớt. Nếu chiểu dài chỉ định nhiều hơn chiều dài nguyên thủy của bộ nhớ đệm, các ký tự null được thêm vào tại vị trí cuối cùng của bộ nhớ đệm. Ví dụ: StringBuffer str = new StringBuffer(10); str.setLength(str.legth() +10); |
getChars() | Phương thức này được sử dụng để trích ra các ký tự từ đối tượng StringBuffer, và sao chép chúng vào một mảng. Ví dụ: StringBuffer str = new StringBuffer(“Leopard”); char ch[] = new char[10]; str.getChars(3,6,ch,0); Bây giờ biến “ch” chứa “par” |
reverse() | Phương thức này đảo ngược nội dung của một đối tượng StringBuffer, và trả về một đối tượng StringBuffer. Ví dụ: StringBuffer str = new StringBuffer(“devil”); StringBuffer strrev = str.reverse(); Biến “strrev” chứa “lived”. |
StringBuffer | StringBuilder |
---|---|
Lớp StringBuffer là đồng bộ (synchronized), tức là an toàn luồng (thread safe). Nghĩa là hai Thread không thể gọi đồng thời các phương thức của lớp StringBuffer | StringBuilder là không đồng bộ (non-synchronized) tức là không an toàn luồng. Nghĩa là hai Thread có thể gọi đồng thời các phương thức của lớp StringBuilder |
StringBuffer là kém hiệu quả hơn StringBuilder | StringBuilder là hiệu quả hơn StringBuffer |
package com.company;
public class Main {
public static void main(String args[]) {
long startTime = System.currentTimeMillis();
StringBuffer sb = new StringBuffer("Java");
for (int i = 0; i < 100000; i++) {
sb.append("BkitSoftware");
}
System.out.println("Thoi gian tieu ton boi StringBuffer: " + (System.currentTimeMillis() - startTime) + "ms");
startTime = System.currentTimeMillis();
StringBuilder sb2 = new StringBuilder("Java");
for (int i = 0; i < 100000; i++) {
sb2.append("BkitSoftware");
}
System.out.println("Thoi gian tieu ton boi StringBuilder: " + (System.currentTimeMillis() - startTime) + "ms");
}
}
Thoi gian tieu ton boi StringBuffer: 16ms
Thoi gian tieu ton boi StringBuilder: 6ms