小白学java第30天
StringBuffer:
1.StringBuffer的直接父类是AbstractStringBuilder
2.StringBuffer实现了Serializable,即StringBuffer的对象可以串行化
3.在父类中AbstractStringBuilder有属性char[] value,不是final,该value数组存放字符串内容,因此存在放在堆中的
4.StringBuffer是一个fina类,不能被继承
5.因为StringBuffer字符内容是存在char[] value中,所以在变化(增加/删除)不用每次都更换地址(即创建新的对象)
Sting对比StringBuffer:
1.String保存的是字符串常量,里面的值不能更改,每次String类的更新实际上就是更新地址,效率很低
2.StringBuffer保存的是字符串变量,里面的值可以更改,每次StringBuffer的更新实际上可以更新内容,不用每次更新地址,效率很高
Sting与StringBuffer相互转换:
Sting转成StringBuffer:
1.使用构造器:String str = “666”;
StringBuffer str1 = new StringBuffer(str);(注意返回的才是StringBuffer对象,对str本身没有影响)
2.使用append方法:StringBuffer str1 = new StringBuffer();
str1 = str1.append(str);
StringBuffer转成Sting:
1.使用 StringBuffer提供的toString方法:String str = str1.toString();
2.使用构造器: String str = new String(str1) ;
StringBuffer的常用方法:
append :增加 str1.append(“777”)
delete :删除 str.delete(10,15)删除11~14的字符【11,14)
replace :修改 str.replace(1,3,“666”)替换索引1~3的字符
indexof :查找 查找指定的支付穿第一次出现的索引,找不到返回-1
insert :插入 str.insert(9,“888”);在索引9的位置插入888,索引为9的内容自动后移
length :长度