StringBuffer的Capacity详解

本文详细解析StringBuffer的capacity()和length()方法的作用,通过实例展示了StringBuffer的默认容量、追加字符串时容量的变化规律,并揭示了append和insert方法的容量分配机制。
部署运行你感兴趣的模型镜像
StringBuffer的capacity()方法的主要作用是获取当前字符串的容量
length()方法的主要作有是获取当前字符串的长度
StringBuffer sb=new StringBuffer();
sb.capacity()=16;
sb.length()=0;
StringBuffer sb1=new StringBuffer(50);
sb1.capacity()=50;
sb1.length()=0;
StringBuffer sb2=new StringBuffer("abc");
sb2.capacity()=19;
sb2.length()=3;
String str="abcdefg"
StringBuffer sb3=new StringBuffer(str);
sb3.capacity()=23;
sb3.length()=7;
所以StringBuffer的默认容量大小是16,字符串每增加一个,则容量在16的基础上默认增加。
StringBuffer sb4=new StringBuffer();
sb4.append("my god");
sb4.capacity()=16;
sb4.length()=6;
sb4.append("0123456789abc");
sb4.capacity()=34;
sb4.length()=19;
StringBuffer sb5=new StringBuffer("abc");
sb5.append("123");
sb5.capacity()=19;
sb5.length()=6;
经过多次实践发现,StringBuffer的append方法的默认容量也是16,但是如果是采用的append方法进行追加字符串的话,其容量并不是在16的基础上往上加的,而是去占用16个默认的空闲容量。
如果超过了16个空闲容量,则此时StringBuffer的容量会自动增加,增加的规则则是大于等于(旧的容量x2+2),即16x2+2=34;下次增加到的容量则是34x2+2=70;
StringBuffer的另一个方法insert()也是和append方法一样的,会占用空闲的没有使用的容量,如采用构造方法new StringBuffer("str")之后,capacity()为19,insert(2,“dsff”)后容量依旧为19,但是length()为7;
StringBuffer的容量一旦增长就不可能变小了,比如现在容量增长为70,如果你使用delete()方法删除了里面所有的字符,其容量依然为70,不会因为你删除了字符其容量就减小,当然其length()肯定为0.

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值