基本介绍
StringBuilderO1.java
1)一个可变的字符序列。此类提供一个与 StringBuffer 兼容的API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候。如果可能,建议优先采用该类,因为在大多数实现中,它StringBuffer 要快[后面测】。
2)在 StringBuilder上的主要操作是append和 insert方法,可重载这些方法,以接受任意类型的数据。
·
String、StringBuffer 和StringBuilder的比较
- StringBuilder和 StringBuffer非常类似,均代表可变的字符序列,而且方法
也一样 - String:不可变字符序列,效率低,但是复用率高。
- StringBuffer:可变字符序列、效率较高(增删)、线程安全4)StringBuilder:可变字符序列、效率最高、线程不安全
· - String使用注意说明:
string s="a";//创建了一个字符串
S += "b";//实际上原来的"a"字符串对象已经丢弃了,现在又产生了一个字符串s+"b”(也就是"ab")。如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率。如果这样的操作放到循环中,会极大影响程序的性能=>结论:如果我们对String做大量修改,不要使用String
String text = "";long startTime = OL;long endTime = OL;
StringBuffer buffer = new StringBuffer("");StringBuilder builder = new StringBuilder("");startlime = System.currentTimeMillis0;
for(int i = O;i<20000;i++){
buffer.append(String.valueOf0);}
endTime = System.currentTimeMillis0;
System.out.println("StringBuffer的执行时间: "+(endTime-startTime));startTime = System.currentTimeMillis(;
for(int i = 0;i<20000;i++){
builder.append(String.valueOf0);)endTime = System.currentTimeMillis(;
System.out.printIn("StringBuilder的执行时间:"+(endTime-startTime));startTime = System.currentTimeMillis0;
for(int i = O;i<20000;i++){
text = text + i计}
endTime = System.currentTimeMillis0;
System.out.println("String的执行时间:"+(endTime-startTime));
网友评论