[源码分析]StringBuilder
Posted noking
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[源码分析]StringBuilder相关的知识,希望对你有一定的参考价值。
[源码分析]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线程不安全.
以上是关于[源码分析]StringBuilder的主要内容,如果未能解决你的问题,请参考以下文章