三者的区别
String:不可变类,一旦一个对象被建立的时候,包含在这个对象中的字符串序列是不可变的,直到这个对象被销毁。
StringBuffer:可变字符序列的字符串。当其对象被创建的时候,可以用append(),insert(),reverse(),setCharAt(),setLength()等方法来调用。
在JDK1.5之后新增StringBuiler,和StringBuffer基本相似,不同的是,StringBuffer线程安全,StringBuilder线程不安全。不过StringBuiler性能比较高。
该如何选择?
例如:
String string = "java";
string = string + "spring";
string = string + "mvc";
这段代码,使用了三个字符串相连接,会额外生成两个字符串,这样就会浪费很多资源。
而StringBuffer和StringBuilder可以很好的避免这个问题。