Производительность с точки зрения производительности StringBuffer намного лучше, чем String; потому что всякий раз, когда вы применяете конкатенацию к объекту String, новый объект String создается при каждой конкатенации.
Основное правило: Строка является неизменяемой (неизменяемой), а StringBuffer - изменяемой (изменяемой)
Вот программный эксперимент, в котором вы получите разницу в производительности
public class Test {
public static int LOOP_ITERATION= 100000;
public static void stringTest(){
long startTime = System.currentTimeMillis();
String string = "This";
for(int i=0;i<LOOP_ITERATION;i++){
string = string+"Yasir";
}
long endTime = System.currentTimeMillis();
System.out.println(endTime - startTime);
}
public static void stringBufferTest(){
long startTime = System.currentTimeMillis();
StringBuffer stringBuffer = new StringBuffer("This");
for(int i=0;i<LOOP_ITERATION;i++){
stringBuffer.append("Yasir");
}
long endTime = System.currentTimeMillis();
System.out.println(endTime - startTime);
}
public static void main(String []args){
stringTest()
stringBufferTest();
}
}
Вывод строки в моей машине
14800
Вывод StringBuffer в моей машине
14