1、String 字符串常量
StringBuffer、StringBuilder 字符串变量
2、执行速度
StringBuilder>StringBuffer>String
例:
String string = "ab";
string = string + "cd";
JVM执行:先创建一个对象string,赋予ab,然后再创建一个对象string执行string+“cd”,也就是第一次创建的string并没有改变,所以说String是不可改变的对象。每当String操作字符串的时候,实际上实在不断创建String新的对象,原来的对象就会被GC回收掉。
而StringBuffer,StringBuilder操作字符串的时候,实际上实在一个对象上操作的。
3、StringBuilder,StringBuffer的区别
StringBuffer 线程安全
StringBuilder 非线程安全