StringBuffer小细节

以前每次说到使用StringBuffer来拼接字符串,但是当使用toString的方法时要小心。

例如下面的代码:

public static void main(String[] args) {
    StringBuffer sb = new StringBuffer();
    long begin = System.currentTimeMillis();
    for (int i = 0; i < 1000 * 10000; i++) {
        if(sb.toString().equals("bb")) {
        }
    }
    long end = System.currentTimeMillis();
    System.out.println(end - begin);
     
    begin = System.currentTimeMillis();
    String ssb = sb.toString();
    for (int i = 0; i < 1000 * 10000; i++) {
        if(ssb.equals("bb")) {
        }
    }
    end = System.currentTimeMillis();
    System.out.println(end - begin);
}

如果每次比较的时候都去调用toString的话,效率会非常低。