String、StringBuffer、StringBuilder的异同

String、StringBuffer、StringBuilder的异同

    不同:

      可变性上:

        String底层是一个final类型的字符数组,所以String的值是不可变的

        StringBuffer和StringBuileder都继承了AbstractStringBuilder抽象类,他们的底层都是可变的字符数组,所以这两者是可变的

      线程安全上:

        String由于其不可变性,是线程安全的

        StringBuffer的方法有synchronized关键字修饰是线程安全的

        StringBuilder不是线程安全的

      效率上:

        三者效率由高到低分别为:StringBuileder > StringBuffer > Strin

      注:StringBuffer和StringBuileder默认初始化容量都是16

原文地址:https://www.cnblogs.com/javaisbest/p/11701263.html