Num4_StringBuffer,StringBuilder 类

一、StringBuffer,StringBuilder 类

概述:这两个类都是用来优化字符串拼接效率的工具类
StringBuilder 和 StringBuffer 在修改时不会创建新对象.

  • StringBuilder 可变字符序列,线程不安全
  • String 的优化导致其必须是不可变的对象,然而这就要求字符串不能频繁的修改,否则性能非常差。
  • 因此,Java提供了两个专门用于修改字符串的API :StringBuilder 和 StringBuffer
  • 其内部维护了一个可变的char数组,修改性能好,开销小,并且提供了修改字符串内容的便捷操作。除了String本身的方法之外
  • 还提供了增删改插等操作。

常用方法

  • 默认无参构造创建时,内部会创建一个初始容量为16的char数组,但是由于数组中没有内容,所以相当于空字符串"";

  • 调用有参构造创建时,会将给定的字符串内容追加(append(str))到StringBuilder对象中。容量将从原来的给的默认长度+str.length
    特点:
    StringBuilder 和 StringBuffer对字符串对象的操作会改变原字符串

  • 1.追加操作:append(String str),将指定字符串拼接到StringBuilder 对象末尾

  • 2.修改内容:replace(int start, int end, String str);第一个参数为要修改的起始下标,第二个参数为结束修改的下标,含头不含尾。第三个参数是替换(修改)成指定字符串。

  • 3.删除内容:delete(int start,int end);含头不含尾

  • 4.插入内容:insert(int offset,String str);

  • 5.反转:reverse();
    builder.reverse();因为StringBuilder 的操作方法返回的是当前对象。所以原字符串会改变。
    StringBufferStringBuilder 是 可变字符序列

封装了char[] 数组

提供了一系列的对字符内容进行修改的方法

常用append来代替字符串做字符串连接

StringBuilder 为线程不安全的, 效率高

StringBuffer 为线程安全的 ,效率会低

System.currentTimeMillis();//记录系统时间,毫秒值,是个long 型

在执行效率上,StringBuilder 快于 StringBuffer 快于 String

所谓安全类似于电脑事件按顺序执行,但是不安全的话,就可能会抢占CPU,导致事件不按顺序执行。

public static void main(String[] args) {
StringBuilder str = new StringBuilder(“abc”);
int result = getResult(str);
System.out.println(result);
}
public static int getResult(StringBuilder str){
str.append(“abc”);
str.delete(0,3);
str.insert(0, “abc”);
str.replace(0,3, “abc”);
return str.length();
}
A.0
B.5
C.6
D.9

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值