String 本身不可变,每一次内容发生变化,都会生成一个新的对象,然后原有对象引用新的对象。 每一次生成新对象都会对系统性能产生影响,这会降低.NET编译器的工作效率。 StringBuilder 每次操作都是对自身对象进行操作,而不是生成新的对象,其所占空间会随着内在做大量的修改操作时,不会因生成大量匿名对象而影响系统性能
例如: 同样是将数组元素通过","逗号分隔转化为字符串 StringBuilder
StringBuilder hr_sign
= new StringBuilder();
for (String temp
:listselect
){
if (hr_sign
.length() == 0){
hr_sign
= new StringBuilder(temp
);
}else {
hr_sign
.append(",").append(temp
);
}
}
String hr_sign
= String
.valueOf(hr_sign
);
String
String hr_sign2
= "";
for (String temp
:listselect
){
if (hr_sign
.length() == 0){
hr_sign2
= temp
;
}else {
hr_sign2
= hr_sign2
+","+temp
;
}
}