[源码分析]StringBuilder

2018-08-06 09:00:36来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

[源码分析]StringBuilder

StringBuilder是继承自AbstractStringBuilder的.

构造器

我每篇文章都说. 请忽略我的"My". 我copy了jdk的代码, 然后把StringBuilder改为了MyStringBuilder. 核心源码不会改动的.

无参构造器是默认的大小为16.

 

或者可以直接给定大小. 来规定初始化时的数组大小.

 

如果是根据传入字符串来构造的, 那么初始大小就是: 传入的字符串长度+16.

常用方法

可以看到, 下面这些方法, 都是直接调用了父类AbstractStringBuilder类的方法. 只是多加了一行return this. 

append(重载有很多, 挑了一个):

insert(重载有很多, 挑了一个):

reverse:

toString方法

AbstractStringBuilder类里的toString方法是抽象方法, 所以具体实现在子类里.

总结

虽然很简单, 但还是总结一下吧.

1. 构造的大小和16相关. 要么是16, 要么就是加16.(除非使用了定制数组大小的那个构造器, 也就是 本文中截图的第二个构造器. 那么就是指定多大, 初始数组就是多大了.)

2. 实现了toString方法. 内部实现就是每次toString都是new一个String对象.

3. 其他方法都是调用的父类的方法. 只是多加了一行return this;

4. (为了和StringBuffer对比) , 明显StringBuilder线程不安全.

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:【Java学习】单例模式

下一篇:学员优秀博文赏析:双基准快速排序实现