Java基础——Java笔记——StringBuffer类常用方法

先来两个面试题:

1.String,StringBuffer,StringBuilder的区别:

 a.StringBuffer和StringBuilder的区别:

        StringBuffer是jdk1.0版本的,是线程安全的,效率低

       StringBuilder是jdk1.5版本的,是线程不安全的,效率高

b.String和StringBuffer,StringBuilder的区别

     String是不可变的字符序列

    StringBuffer和StringBuilder是可变的字符序列


2.String和StringBuffer分别作为参数传递问题

   我们知道基本数据类型是值传递,不会改变其值,引用数据类型是是址传递,会改变其值。

但是String类虽然是引用数据类型,当作参数传递时,不会改变其值,因为方法里面对String值改变的操作,都是再创建以string对象,并且该对象随着方法的结束而变成垃圾。

  String对象的特点,一旦被初始化,就不能被改变

  StringBuffer则与String不一样,同其他引用数据类型一样,做参数传递时,同样传入的是地址值,但是方法中发生改变返回的是本身,方法弹栈后,改变的值仍然有效。


StringBuffer的添加功能:

1.public StringBuffer append(String str):可以把任意数据类型添加到字符串缓冲区里面,并返回字符串缓冲区本身

  注意:StringBuffer是字符串缓冲区,当new的时候是在堆内存创建了一个对象,底层是一个长度为16的字符数组,当调用添加的方法时,不会再重新创建对象,而是不断向原缓冲区添加字符

StringBuffer类中重写了toString方法,显示的是对象中的属性值

2.public StringBuffer insert(int offsert, String str): 在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符缓冲区本身

注意:如果没有指定位置的索引就会报StringIndexOutOfBoundsException异常。


StringBuffer的删除功能:

1.public StringBuffer deleteCharAt(int index) 删除指定位置的字符,并返回字符缓冲区本身

 注意:当缓冲区中这个索引上没有元素的时候就会报StringIndexOutOfBoundsException异常

2.public StringBuffer delete(int start,int end) 删除从指定位置开始到指定位置结束的内容,返回字符缓冲区本身

 若清空缓冲区可写为delete(0,sb.length())


StringBuffer的替换功能:

1.public StringBuffer replace(int start,int end,String str) 从start开始到end结束用str替换

2.StringBuffer的反转功能 public StringBuffer reverse() 将字符串反转


StringBuffer的截取功能:

1.pubic string subString(int start) 从指定位置开始截取到末尾

2.public string subString(int start, int end)  截取从指定位置开始到指定位置结束


注意:返回值的类型是String,不再是StringBuffer本身。返回的是一个新的字符串,原StringBuffer本身不变。


StringBuffer与String的转换:

1.String——> StringBuffer

    a.通过构造方法

    b.通过append方法

2.StringBuffer——>String

    a.通过构造方法

    b.通过toString方法

    c.通过subString(0,str.length)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值