我有StringBuilder a
。我必须将a
的内容附加到StringBuilder b
。如果b
null
,则分配b=a
,否则b.append(a.toString())
。
检查StringBuilder
是否 null
是否有任何性能差异?
method_a(StringBuilder a, StringBuilder b) {
if (b != null) {
b.append(a.toString();
} else {
b=a;
}
}
答案 0 :(得分:3)
b = a;
将具有更高的性能,因为它只是分配引用。 b.append
是一个方法调用,需要复制字符,并且(可能)创建一个新的字符数组。
问题是这是否是你想要的。请注意,a
和b
都是局部变量,因此如果您执行b = a
,则可以使用b
直到方法结束。但是,它不会影响来电者。
相反,b.append
就地修改了对象。没有创建新对象,因此在方法之外可以看到此突变。