字符串是程序开发中使用最为频繁的数据,在java中字符串是String类的对象,它是不可变的数据,当执行字符串连接操作时将生成新的字符串,而不是修改原来的字符串,所以大量字符串操作将会非常耗时。这时我们可以利用StringBuilder来进行追加操作,这将比直接利用String操作要节省大量时间。我们可以利用如下代码进行操作:

public static void main(String[] args){
    String line = "";
    long startTime = System.nanoTime();
    for(int i = 0; i < 30000; i++) {
        line += (char) i;
    }
    long endTime = System.nanoTime();

    StringBuilder str = new StringBuilder();
    startTime = System.nanoTime();
    for(int i = 0; i < 30000; i++) {
        str.apppend((char)i);
    }
    entTime = System.nanoTime();
}

StringBuilder对于多线程来说,是不安全的,它适用于单任务的字符串操作,如果把它用于多线程中将会涉及异步访问的安全性,这是可以用StringBuffer类来进行操作,但是它会比StringBuilder慢一些。