问答详情
源自:2-7 练习题

String 对象存储字符串的效率比 StringBuilder 高?

string对象存储字符串的效率与stringbuilder,stringbuffer比较,哪个高?为什么


提问者:血色万花筒 2017-12-28 16:25

个回答

  • 油泼裤带面
    2017-12-28 18:52:05
    已采纳

    StringBulider>StringBuffer>String;

    String确定字符串之后是固定的不可改变的;重新添加字符串就会成为一个新的对象,并非是原对象;

    StringBulider确定字符串后可对字符串进行修改、增加内容,且指定的还是原对象,性能比string高;

    StringBulider和StringBuffer比较,前者没有实现线程安全功能,后者是线程安全,所以前者比后者高;

  • qq_慕尼黑9434378
    2020-09-11 09:51:22

    String是不可变的,所以天然线程同步。
    同步就是排队,线程t1要执行的时候,必须等待t2线程执行结束;
    异步就是并发,各线程执行各自的,互不影响。

  • Anshay
    2018-01-19 10:27:24

    String主要用于公共API,通用性好、用途广泛、读取性能高、占用内存小。
    StringBuilder主要用于拼接String,修改性能好。
    不过现在的编译器已经把 String 的 + 操作优化成 StringBuilder 了,所以一般用String就可以了

    String是不可变的,所以天然线程同步。
    StringBuilder可变,非线程同步。