日期:2014-05-20  浏览次数:20754 次

为什么string 能进行加法运算?
STRING与STRINGBUFFER的区别中说到:String类提供了数值不可改变的字符串
但 为什么string 能进行加法运算?例如:String str="a"; str+="b";

------解决方案--------------------
那不是加法运算吧 好像是a连上b吧
------解决方案--------------------
运算符重载。。。这里的+是字符串链接
------解决方案--------------------
新手往往在这个问题上疑惑不已。举个例子吧。
你有一个电视遥控器str,它控制电视机a。
str+="b"后,产生了一台新的电视机叫ab,现在遥控器str控制ab。
但是电视a还是存在的,只是你手上没有遥控器控制它而已。
也就是说你已经取不到字符a了,但是它其实仍然在内存中。它不可改变。

如果用StringBuffer.则经过以上操作后,电视机a就不存在了,只有新产生的电视机ab存在。
------解决方案--------------------
不是加法,字符串连接,方便编程而已。
理论上直接用+连接字符串性能方面不太好,可以考虑使用StringBuild.append()方法。
不过用+连接,代码更清晰一点,所以如果不是特别强调性能,也可以使用。
------解决方案--------------------
探讨
不是加法,字符串连接,方便编程而已。
理论上直接用+连接字符串性能方面不太好,可以考虑使用StringBuild.append()方法。
不过用+连接,代码更清晰一点,所以如果不是特别强调性能,也可以使用。