我刚刚遇到StringBuilder
第一次使用并感到惊讶,因为 Java 已经拥有非常强大的功能String
允许追加的类。
为什么要一秒钟String
class?
我在哪里可以了解更多信息StringBuilder
?
String
不允许追加。您调用的每个方法String
创建一个新对象并返回它。这是因为String
是不可变的——它不能改变其内部状态。
另一方面StringBuilder
是可变的。你打电话时append(..)
它更改内部字符数组,而不是创建新的字符串对象。
因此,更有效的是:
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 500; i ++) {
sb.append(i);
}
而不是str += i
,这将创建 500 个新的字符串对象。
请注意,在示例中我使用了循环。正如 helios 在评论中指出的那样,编译器会自动翻译如下表达式String d = a + b + c
类似的东西
String d = new StringBuilder(a).append(b).append(c).toString();
另请注意,有StringBuffer
此外StringBuilder
。不同的是前者有同步方法。如果将其用作局部变量,请使用StringBuilder
。如果碰巧它可能被多个线程访问,请使用StringBuffer
(这种情况比较少见)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)