String,StringBuffer与StringBuilder的区别与选择

三者的区别

String:不可变类,一旦一个对象被建立的时候,包含在这个对象中的字符串序列是不可变的,直到这个对象被销毁。
StringBuffer:可变字符序列的字符串。当其对象被创建的时候,可以用append(),insert(),reverse(),setCharAt(),setLength()等方法来调用。

在JDK1.5之后新增StringBuiler,和StringBuffer基本相似,不同的是,StringBuffer线程安全,StringBuilder线程不安全。不过StringBuiler性能比较高。

该如何选择?
例如:

1 String string = "java";
2 string = string + "spring";
3 string = string + "mvc";
View Code

这段代码,使用了三个字符串相连接,会额外生成两个字符串,这样就会浪费很多资源。

而StringBuffer和StringBuilder可以很好的避免这个问题。

原文链接:http://blog.csdn.net/rmn190/article/details/1492013

原文地址:https://www.cnblogs.com/xuhai/p/7813192.html