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;
}
}