日期:2014-05-19  浏览次数:20701 次

StringBuffer的append和加号的小疑问
有个朋友说
Stringbuffer里用加号,和用append追加数据是一样的。
自己搜了下没有找到答案。

StringBuffer sql = new Stringbuffer();
//这种情况

sql.append("abc"+"123");
//和这种情况 

sql.append("abc").append("123");

个人认为在StringBuffer中使用+号貌似就等于在用string+string,也是很消耗内存的操作……

求大牛简单解释下





------解决方案--------------------
java没有运算符重载,但为了方便特准String可以使用“+”和“+=”。

所以StringBuffer不存在使用“+”的情况。


sql.append("abc"+"123");
就是StringBuffer的一次append方法调用,而方法的参数是先执行了一次String+String得来的。
这样写虽然稍微耗点内存,但是是允许的。因为这里连接的是sql语句,可读性的要求大于性能的要求。
------解决方案--------------------
看这里:http://www.ticmy.com/?p=69