Java常用API—StringBuffer类与StringBuilder类

一、引言

String类虽然很强大,但是因为String类不可变,所以会造成内存的过于浪费。为了解决字符串的内存问题,诞生了StringBuffer类,也就是字符串缓冲区。它的出现极大提高了字符串的操作效率。

StringBuffer内部定义了一个没有final的数组(实质上是StringBuffer继承的父类AbstractStringBuilder中定义的:char[] value)。该数组的默认容量是16个字符。当数组扩容时,将原数组复制,再添加,形成新的数组,将旧数组抛弃。


二、StringBuffer的方法

》StringBuffer append(String str)

将形参引用的字符串追加到字符串后面,可以接受任何数据类型但是最后输出的都是字符串类型。谁调用返回谁,可以无限制在后面调用(方法调用链,即如果方法的返回值类型还是个对象,那么还可以接着点出方法)

结果:

》StringBuffer delete(int start, int end) 移除此序列的子字符串中的字符

java中,索引有开始结束的,都是含头不含尾

如果想清空缓冲区,可以通过如下代码做到:

结果:

 

》StringBufferinsert(int offset, ***) 将字符串插入此字符串任意位置(offset指定的下标位置),***可以为任何类型

》StringBufferreplace(int start, int end, String str) 使用给定字符串替换

》StringBufferreverse() 将此字符序列反转

》StringtoString() 以字符串形式返回序列


三、StringBuilder类

与StringBuffer兼容(两个类的方法相同),该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候。如果没有多线程需求,建议使用StringBuilder,因为StringBuilder较快。


四、StringBuilder 与 StringBuffer 的区别

StringBuilder线程不安全,执行效率高,StringBuffer相反。其他都一样,方法完全相同。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值