Java String对象不可改变的特性
String对象一旦被创建就不能被改变,而StringBuffer是可变的。这句话怎么理解?
1.声明String对象
String s = "abcd";
![](//images0.cnblogs.com/blog/585263/201410/061831404375850.png)
2.将一个字符串变量赋值给另一个String变量
String s2 = s;
3.字符串连接
s = s.concat("ef"); // s = s + "ef"; // 等价
总结:
一个String对象在堆内存中创建以后,就不能改变。请注意String对象的所有方法不会改变其本身,而是会返回一个新的String对象.
如果我们需要可改变的字符串,则需要使用StringBuffer.否则每次创建一个新String对象的话,就会造成大量的内存浪费,需要耗时来执行垃圾回收。
如果字符串需要经常改变,一般选择用StringBuffer.
参考文章:
http://blog.csdn.net/renfufei/article/details/15815121