Java复习之StringBuffer类

这篇博客主要是总结一下StringBuffer类的相关的用法。

(1)StringBuffer类的引用
在实际开发当中,我们经常会使用到字符串链连接操作,如果使用String
来操作,则使用“+”号来完成字符串的连接操作。

使用String连接字符串,代码性能会非常低,因为String的内容不可变
使用String每次字符串拼接操作都会重新创建char数组

(2)StringBuffer类源码分析
String每次会开辟一个与字符串相等的字符数组,并且这个数组为final类型不能进行拓展

StringBuffer每次默认开辟一个大小为16的字符数组,当超过16的时候,
会进行拓展。

为了避免拓展,我们可以使用带有参数的构造方法,其中参数为要开辟的字符数组的大小,这样可以避免拓展带来内存的浪费

(3)StringBuffer常用操作方法

public StringBuffer()
构造一个空的StringBuffer对象

public StringBuffer(String str)
将指定的String变为StringBuffer的内容
这样构造的字符数字的大小为:str的长度+16

public StringBuffer(charSequence seq)
接收CharSequence接口的实例

public StringBuffer append(数据类型 b)
提供了很多的append()方法,用于进行字符串的连接

public StringBuffer delete(int start,int end)
删除指定位置的内容

public int indexof(String str)
字符串的查询功能,查找str的首次起始位置

public StringBuffer insert(int offset,数据类型 b)
在指定位置上增加一个内容

public StringBuffer replace(int start,int end,String str)
在指定范围的内容替换成其他内容

public StringBuffer reverse()
字符串的反转

public StringBuffer substring(int start)
字符串的截取

public StringBuffer substring(int start,int end)
截取指定范围的字符串

(4)StringBuffer的兄弟StringBuilder

一个可变的字符序列。此类提供与StringBuffer兼容的API,但不保证同步。该类被设计用作StringBuffer的一个简易替换。用在字符串缓冲区被单个线程使用的时候如果可能,建议优先采用该类,因为在大多数的实现中,它比StringBuffer要快。

public class StringBufferDemo {
    public static void main(String args[])
    {
        String s ="小白";
        //默认字符数组的大小是16
        //拓展方式:(原来的长度+1)*2
        //如果我们可以确定整个的长度,可以调用带有
        //初始容量的构造方法
        StringBuffer sb =  new StringBuffer();
        sb.append("此刻打盹,你将做梦。");
        sb.append("此刻学习,你将圆梦。");
        System.out.println(sb.toString());

        //StringBuilder单线程访问时使用,效率更高,线程不安全
        //StringBuffer在多线程访问时使用,线程安全
        StringBuilder sb2 = new StringBuilder();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值