String、StringBuffer、StringBuilder三者的异同?
String:不可变的字符序列;
Stringbuffer:可变的字符序列;线程安全的,效率低;
StringBuilder:可变的字符序列;JDK5.0新增的,线程不安全的,效率高;
String、StringBuffer、StringBuilder三者效率对比
效率从高到低排列:StringBuilder > StringBuffer > String
public class Main {public static void main(String[] args) {long startTime = 0L;long endTime = 0L;String text = "";StringBuffer buffer = new StringBuffer("");StringBuilder builder = new StringBuilder("");//开始对比startTime = System.currentTimeMillis();for (int i = 0; i < 20000; i++) {buffer.append(String.valueOf(i));}endTime = System.currentTimeMillis();System.out.println("StringBuffer的执行时间:" + (endTime - startTime) + " ms");startTime = System.currentTimeMillis();for (int i = 0; i < 20000; i++) {builder.append(String.valueOf(i));}endTime = System.currentTimeMillis();System.out.println("StringBuilder的执行时间:" + (endTime - startTime) + " ms");startTime = System.currentTimeMillis();for (int i = 0; i < 20000; i++) {text = text + i;}endTime = System.currentTimeMillis();System.out.println("String的执行时间:" + (endTime - startTime) + " ms");}}//StringBuffer的执行时间:6 ms//StringBuilder的执行时间:3 ms//String的执行时间:1483 ms
