StringBuffer | StringBuilder |
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
Be First to Comment