String类是最终类用final类修饰的,所以无法被继承;且面值内容不可以发生改变。
创建字符串 String str = "runoob"; 存储在常量池
用构造函数创建字符串 String str = new String("runoob"); 存储在堆上,也存储在常量池(堆里创建的,常量池一定有)
StringBuffer对象代表一组可以改变的Unicode字符序列
StringBuffer类和StringBuilder类比较:
相同点:两者都具有字符串缓存
不同点: StringBuffer类是线程安全的,StringBuilder类是非线程安全的(不能同步访问); StringBuilder 相较于 StringBuffer 有速度优势。
StringBuffer类方法:
StringBuffer()创建一个空的自负缓冲,长度为16个字符容量;
StringBuffer(int capacity)用指定的初始容量创建一个空的字符缓冲;
StringBuffer(String initString)创建包含iniString的字符缓冲,并加上16个字符的备用空间。
缓冲的修改操作:append、insert、reverse、setCharArt、setLength。
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuffer 不可做字符串“+”连接;
StringBuffer类没有覆盖equals()方法;
StringBuffer类覆盖toString()方法,但和String类覆盖toString()方法实现方式不同。
菜鸟教程链接:Java StringBuffer 和 StringBuilder 类 | 菜鸟教程 (runoob.com)
CSDN链接:(10条消息) String类型_DayMoonNight的博客-CSDN博客_string类型



