创建成功的字符串对象,其长度是固定的,内容是不能被修改和编辑。虽然使用"+"可以达到增加新字符或字符串的目的,但"+"会产生一个新的String实例,会在内存中创建新的字符串对象。如果重复地对字符串进行修改,将极大地增加系统开销。J2SE自5.0增加了可变的字符序列String-Builder类,大大地提高了频繁增加字符串的效率。下面看个简单的例子。
public class Jerque {
/**
* 比较一般情况下的字符串生成器,和String-Builder所耗的时间
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "";
long startTime1 = System.currentTimeMillis();
for (int i =0; i<10000; i++)
{
str = str +i;
}
long endTime1 = System.currentTimeMillis();
long time1 = endTime1 - startTime1;
System.out.println("字符串1消耗时间:"+ time1);
StringBuilder builder = new StringBuilder("");
long startTime2 = System.currentTimeMillis();
for (int i=0;i<10000;i++)
{
builder.append(i);
}
long endTime2 = System.currentTimeMillis();
long time2 = endTime2 - startTime2;
System.out.println("字符串2消耗时间:" + time2);
}
}
字符串1消耗时间:1210
字符串2消耗时间:3
总结:
1. 用JAVA自带的字符序列String-Builder类,无疑大大提高了效率。
2. 此类常用的方法如下:
a. append(content)方法
b. insert(int offset,arg)方法
StringBuilder b = new StringBuilder("Hello");
b.insert(5,"World!");
System.out.println(b.tostring());
c. delete(int start,int end)方法
StringBuilder d = new StringBuilder("StringBuilder");
d.delete(5,10);
System.out.println("d.toString()");
本文通过一个简单的示例展示了在Java中,使用StringBuilder相比于直接操作String对象在频繁字符串拼接时能显著提高效率。在循环中,使用StringBuilder的append方法添加字符序列,相比String的+操作减少了内存中创建新对象的开销。实验结果显示StringBuilder的耗时远低于使用String的耗时,证实了其在性能上的优势。此外,文章还列举了StringBuilder的一些常用方法,如append、insert和delete,用于说明其可变性和灵活性。

被折叠的 条评论
为什么被折叠?



