11/08/2018, 19:42

Sự khác nhau giữa StringBuffer và StringBuilder trong java

Sự khác nhau giữa String và StringBuffer trong java Sự khác nhau giữa StringBuffer và StringBuilder trong java Sự khác nhau giữa StringBuffer và StringBuilder trong java được thể hiện trong bảng sau: No. StringBuffer StringBuilder 1) StringBuffer là đồng bộ ...

Sự khác nhau giữa String và StringBuffer trong java

Sự khác nhau giữa StringBuffer và StringBuilder trong java

Sự khác nhau giữa StringBuffer và StringBuilder trong java được thể hiện trong bảng sau:

No.StringBufferStringBuilder
1)StringBuffer là đồng bộ (synchronized) tức là luồng an toàn. Điều này có nghĩa là không thể có 2 luồng cùng truy cập phương thức của lớp StringBuffer đồng thời.StringBuilder là không đồng bộ (non-synchronized) tức là luồng không an toàn. Điều này có nghĩa là có 2 luồng cùng truy cập phương thức của lớp StringBuilder đồng thời.
2)StringBuffer không hiệu quả bằng StringBuilder.StringBuilder hiệu quả hơn StringBuffer.

Ví dụ về StringBuffer trong java

public class BufferTest {
	public static void main(String[] args) {
		StringBuffer buffer = new StringBuffer("hello");
		buffer.append("java");
		System.out.println(buffer);
	}
}

Output:

hellojava

Ví dụ về StringBuilder trong java

public class BuilderTest {
	public static void main(String[] args) {
		StringBuilder builder = new StringBuilder("hello");
		builder.append("java");
		System.out.println(builder);
	}
}

Output:

hellojava

Test hiệu suất của StringBuffer và StringBuilder trong java trong java

public class ConcatTest {
	public static void main(String[] args) {
		long startTime = System.currentTimeMillis();
		StringBuffer sb = new StringBuffer("Java");
		for (int i = 0; i < 100000; i++) {
			sb.append("Hello");
		}
		System.out.println("Thời gian nối chuỗi của StringBuffer: "
				+ (System.currentTimeMillis() - startTime) + "ms");
		startTime = System.currentTimeMillis();
		StringBuilder sb2 = new StringBuilder("Java");
		for (int i = 0; i < 100000; i++) {
			sb2.append("Hello");
		}
		System.out.println("Thời gian nối chuỗi của StringBuilder: "
				+ (System.currentTimeMillis() - startTime) + "ms");
	}
}

Output:

Thời gian nối chuỗi của StringBuffer: 11ms
Thời gian nối chuỗi của StringBuilder: 5ms

Tìm hiểu về xử lý chuỗi trong java
  • String là gì
  • Immutable String
  • So sánh String
  • Nối String
  • Sub-String
  • Phương thức của lớp String
  • Lớp StringBuffer
  • Lớp StringBuilder
  • String vs StringBuffer
  • StringBuffer vs Builder
  • Tạo lớp Immutable
  • Phương thức toString
  • Lớp StringTokenizer
Sự khác nhau giữa String và StringBuffer trong java
0