Skip to content

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

StringBufferStringBuilder
StringBuffer is synchronized i.e. thread safe. It means two threads can’t call the methods of StringBuffer simultaneously.StringBuilder is non-synchronized i.e. not thread safe. It means two threads can call the methods of StringBuilder simultaneously.
StringBuffer is less efficient than StringBuilder.StringBuilder is more efficient than StringBuffer.

Ví dụ StringBuffer

StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("Luke");
stringBuffer.append("iscoder");
System.out.println(stringBuffer);
Lukeiscoder

Ví dụ StringBuilder

StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("Luke");
stringBuilder.append("is coder");
System.out.println(stringBuilder);
Lukeiscoder

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

long startTime = System.currentTimeMillis();
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("Luke");
stringBuffer.append("is coder");
for (int i = 0; i < 1000000 ;i++) {
    stringBuffer.append("testStringBuffer");
}
long endTime = System.currentTimeMillis();
System.out.println("Time taken by StringBuffer: " + (endTime - startTime) + "ms");

startTime = System.currentTimeMillis();
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("Luke");
stringBuilder.append("is coder");
for (int i = 0; i < 1000000 ;i++) {
    stringBuilder.append("testStringBuilder");
}
endTime = System.currentTimeMillis();
System.out.println("Time taken by StringBuilder: " + (endTime - startTime) + "ms");
Time taken by StringBuffer: 108ms
Time taken by StringBuilder: 74ms
Published inJava Core

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *