1.Java编译器对String做了特殊处理,虽然可以直接拼接字符串,但是,在循环中,每次循环都会创建新的字符串对象,然后扔掉旧的字符串。这样,绝大部分字符串都是临时对象,不但浪费内存,还会影响GC效率。为了能高效拼接字符串,Java标准库提供了StringBuilder,它是一个可变对象,可以预分配缓冲区,这样,往StringBuilder中新增字符时,不会创建新的临时对象:

package com.array.test;

public class StringBuilderTest
{
public static void main(String[] args)
{
//常规操作
StringBuilder stringBuilder = new StringBuilder(1024);
for (int i = 0; i < 10; i++)
{
stringBuilder.append(i);
if (i != 9)
{
stringBuilder.append(',');
}
}
String s = stringBuilder.toString();
System.out.println(s);

}
}

2.StringBuilder还可以进行链式操作,进行链式操作的关键是,定义的append()方法会返回this,这样,就可以不断调用自身的其他方法。仿照StringBuilder

2.1创建Adder类

package com.array.test;

public class Adder
{
private int sum = 0;

public Adder add(int n) {
sum += n;
return this;
}

public Adder inc() {
sum ++;
return this;
}

public int value() {
return sum;
}
}

2.2在StringBuilderTest中编写测试方法

package com.array.test;

public class StringBuilderTest
{
public static void main(String[] args)
{//进行链式操作的关键是,定义的append()方法会返回this,这样,就可以不断调用自身的其他方法
Adder adder = new Adder();
adder.add(3);
adder.add(5);
adder.inc();
adder.add(10);
System.out.println(adder.value());


}
}