Skip to content

String 类总结


分类

(1) Stirng

(2)StringBuffer

(3)StringBuilder

执行效率

StringBuilder > StringBuffer > String

执行效率测试

java
public class time_test {
    public static void main(String[] args) {

        long startTime = 0L;
        long endTime = 0L;

        // StringBuilder
        StringBuilder builder = new StringBuilder("");
        startTime = System.currentTimeMillis();
        for (int i = 0; i < 80000; i++) {
            builder.append(String.valueOf(i));
        }
        endTime = System.currentTimeMillis();
        System.out.println("StringBuilder 的执行时间: " + (endTime - startTime));

        // StringBuffer
        StringBuffer buffer = new StringBuffer("");

        startTime = System.currentTimeMillis();
        for (int i = 0; i < 80000; i++) {
            buffer.append(String.valueOf(i));
        }
        endTime = System.currentTimeMillis();
        System.out.println("StringBuffer 的执行时间: " + (endTime - startTime));

        // String
        String text = "";
        startTime = System.currentTimeMillis();
        for (int i = 0; i < 80000; i++) {
            text = text + i;
        }
        endTime = System.currentTimeMillis();
        System.out.println("String 的执行时间: " + (endTime - startTime));
    }
}

输出结果

java
StringBuilder 的执行时间: 0
StringBuffer 的执行时间: 10
String 的执行时间: 3871

如何选择

(1)如果字符串在大量的修改操作,一般使用 StringBuffer 或 StringBuilder

(2)如果字符串在大量的修改操作,并在单线程的情况下,使用 StringBuilder

(3)如果字符串在大量的修改操作,并在多线程的情况下,使用 StringBuffer

(4)如果我们字符串很少修改被多个对象引用,使用 String,比如配置文件信息等