Java基础>18 - StrngBuffer、StringBuilder

学习总结:
链接:【Java基础、springboot、springcloud、docker 等,学习目录

由【上一节】知道,字符串是常量,创建之后不能够被修改,那么字符串对象的改变必然会创建一个新的字符串,频繁修改导致String对象泛滥。

StringBuffer:

字符串缓冲类,储存字符的容器。器默认容器大小为16,如果容器不够使用了,自动扩容:1倍 + 2.

StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("ronron");
System.out.println(stringBuffer.capacity()); // 16
stringBuffer.append("ronronronronron");
System.out.println(stringBuffer.capacity()); // 34

1、构造:

// 无参构造
StringBuffer stringBuffer = new StringBuffer();
// 指定容器初始长度
StringBuffer stringBuffer = new StringBuffer(6);
// 初始字符
StringBuffer stringBuffer = new StringBuffer(“ron”);

2、方法:

// 添加:
1、append(Object obj):添加任意数据到容器中。
2、insert(int offset, Object obj):在指定索引位置添加任意内容。
// 删除:
1、delete(int start, int end):指定索引开始于结束位置删除。
2、deleteCharAt(int index):根据指定索引值删除一个字符。
// 查找:
int o = stringBuffer.indexOf("o");    // 第一次出现的位置
int r = stringBuffer.indexOf("r", 3); // 指定开始查找的位置查找指定字符第一次出现的位置
lastIndexOf()
// 其他:
capacity():容器长度
length():字符个数
reverse():翻转字符缓冲区内容。// nornornornor
replace(int start, int end, String str):替换
substring()
ensureCapacity(int num); // 指定StringBuffer 内部字符数组长度。
StringBuilder 与 StringBuffer 区别:

相同: 都是字符串缓冲类。方法一致。
不同:
1、StringBuffer 线程安全,操作效率低。
2、StringBuilder 线程非安全,效率高。
执行速度比较:StringBuilder > StringBuffer > String

线程安全:
同一个时间里,只允许一个线程操作一段程序。线程不安全即允许多个线程同时操作一段程序。
通俗点:某些类创建对象,执行它的方法时,对其上锁。某一时刻只能有一个线程去执行某个方法。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值