StringBuffer和之间的主要区别是StringBuilder什么?在决定其中任何一个时是否存在性能问题?
StringBuffer
StringBuilder
StringBuffer是同步的,StringBuilder不是。
StringBuilder不
StringBuilder比StringBuffer因为不是更快synchronized。
StringBuilder比StringBuffer
synchronized
这是一个简单的基准测试:
public class Main { public static void main(String[] args) { int N = 77777777; long t; { StringBuffer sb = new StringBuffer(); t = System.currentTimeMillis(); for (int i = N; i --> 0 ;) { sb.append(""); } System.out.println(System.currentTimeMillis() - t); } { StringBuilder sb = new StringBuilder(); t = System.currentTimeMillis(); for (int i = N; i > 0 ; i--) { sb.append(""); } System.out.println(System.currentTimeMillis() - t); } } }
一个试运行给出的数字2241 ms为StringBufferVS 753 ms的StringBuilder。