String是只读字符串,它并不是基本数据类型,而是一个对象。
从底层源码来看是一个final类型的字符数组 private final char value[];
String所引用的字符串不能被改变,一经定义,无法再增删改。
每次对String的操作都会生成新的String对象。
每次+操作 : 隐式在堆上new了一个跟原字符串相同的StringBuilder对象,再调用append方法拼接+后面的字符。

StringBuffer与StringBuilder都继承了AbtractStringBuilder类,而AbtractStringBuilder又实现了CharSequence接口,两个类都是用来进行字符串操作的,在做字符串拼接修改删除替换时,效率比String更高。

StringBuffer是线程安全的,StringBuilder是非线程安全的。所以StringBuilder比StringBuffer效率更高,StringBuffer的方法大多都加了synchronized关键字。

posted on 2020-12-26 18:06  剑舞红颜笑i  阅读(57)  评论(0)    收藏  举报