我使用来了解Java与+=运算符的工作方式StringBuilder。 它是用同样的("a" + "b")操作?
+=
StringBuilder
("a" + "b")
不。使用StringBuilder和做不一样"a" + "b"。
"a" + "b"
在Java中,字符串实例是不可变的。
因此,如果您这样做:
String c = "a" + "b";
每次连接时都在创建新的字符串。
另一方面,StringBuilder就像一个缓冲区,可以在追加新Strings时根据需要增长。
StringBuilder c = new StringBuilder(); c.append("a"); c.append("b"); // c is only created once and appended "a" and "b".
经验法则是(由于我的评论而改变):
如果要进行大量连接(例如,在循环内进行连接,或生成由多个字符串连接的变量组成的大型XML),请使用StringBuilder。否则,简单的串联(使用+运算符)就可以了。
编译此类代码时,编译器优化也起着重要作用。
这是 对该主题的进一步说明。