StringBuffer与StringBuilder的区别

1. 在执行速度方面的比较:StringBuilder > StringBuffer


2. StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。


3. StringBuilder:线程非安全的、StringBuffer:线程安全的,以下是两类的append源码:

    @Override
    public StringBuilder append(Object obj) {
        return append(String.valueOf(obj));
    }
    @Override
    public synchronized StringBuffer append(Object obj) {
        toStringCache = null;
        super.append(String.valueOf(obj));
        return this;
    }


4、对于三者使用的总结:

  • 如果要操作少量的数据用 = String
  • 单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
  • 多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

你可能感兴趣的:(java,stringbuilder,stringbuffer,string,Java,JDK,源码分析)