对StringBuilder的append方法底层详解

首先查看builder对象的初始化
StringBuilder builder = new StringBuilder();

在该方法内指向了超类的构造方法,并传入了一个int值,它的形参名为:容积(capacity)

public StringBuilder() {
   
    super(16);//这是一个固定的值
}
  • 在创建StringBuilder对象时传入的如果是String类型的话会固定有一个16的长度,即使在创建的时候就定义了一个字符串,在底层创建数组时仍然是 字符串长度+16
    • 在数组创建完成后仍然会通过append来将字符串追加到数组中
public StringBuilder(String str) {
   
    super(str.length() + 16);
    append(str);
}
  • 唯一的另类就是在初始化对象时,传参传的是int类型的值时,StringBuilder会将该值替换掉默认的容量,以该容量进行数组的初始化
public StringBuilder(int capacity) {
   
    super(capacity);
}

跟随该指向我们来到了超类AbstractStringBuilder

超类中初始定义了一个字符数组value,一个整数count

char[] value; //该数组就是buffer与builder的底层所指向的那个数组

int count; //count主要是用来对数组长度进行计数

在该构造方法中,将我们从下面传过来的int值定义为value数组的长度

AbstractStringBuilder(int capacity) {
   
    value = new char[capacity];
}
</
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值