AbstractStringBuilder类源码解析

AbstractStringBuilder 类

e8761423a19190440d36d4b9817321842c5.jpg

AbstractStringBuilder 类实现了Appendable和CharSequence。

先看一下Appendable,它是一个可用于追加的接口,jdk1.5出现的,这个接口在多线程情况下是线程不安全的,线程安全性由他的实现类来保证。这个接口的各个现有实现类具有不同错误处理风格,因此不能保证错误将传播到调用程序。

再看一下接口CharSequence,CharSequence是一组可读的字符值序列。该接口提供对许多不同类型的字符序列的统一只读访问。这个接口没有细化{@link java.lang.Object#equals(java.lang.Object) =}和{@link java.lang.Object#hashCode() hashCode}方法的一般契约。因此,比较实现CharSequence的两个对象的结果通常是未定义的。每个对象都可以由不同的类实现,并且不能保证每个类都能够测试它的实例与其他类的实例是否相等。因此,将任意CharSequence实例用作set集合中的元素或map映射中的键是不合适的。

看完这2个接口之后,我们回到AbstractStringBuilder 类。这个类有2个属性,字节数组value:用来储存字节。count:被使用的字节的数量。

这个类有2个构造方法,无参和有参的构造方法,有参构造方法,用于创建指定容量的AbstractStringBuilder。

看一下这个类的几个方法:

89327de775fd2ed14aad438c795770b6b89.jpg

这个是扩容的方法,我比较好奇的是加2的意义。

再就是faac153e9a2649b37a06c5f9963ff6061b1.jpg,这段代码在扩容,截取的时候都是很不错的,而且是native修饰的。

别的方法都很简单,然后看一下就差不多了,我就没做什么笔记。

 

 

 

 

 

转载于:https://my.oschina.net/u/3944601/blog/3043576

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值