小学徒成长系列—StringBuilder StringBuffer关键源码解析

在前面的博文《小学徒成长系列—String关键源码解析》和《小学徒进阶系列—JVM对String的处理》中,我们讲到了关于String的常用方法以及JVM对字符串常量String的处理。

但是在Java中,关于字符串操作的类还有两个,它们分别是StringBuilder和StringBuffer。我们先来就讲解一下String类和StringBuilder、StringBuffer的联系吧。

String、StringBuilder、StringBuffer的异同点

结合之前写的博文,我们对这三个常用的类的异同点进行分析:

异:

1>String的对象是不可变的;而StringBuilder和StringBuffer是可变的。

2>StringBuilder不是线程安全的;而StringBuffer是线程安全的

3>String中的offset,value,count都是被final修饰的不可修改的;而StringBuffer和StringBuilder中的value,count都是继承自AbstractStringBuilder类的,没有被final修饰,说明他们在运行期间是可修改的,而且没有offset变量。

同:

三个类都是被final修饰的,是不可被继承的。

StringBuilder和StringBuffer的构造方法

其实StringBuilder和StringBuffer的构造方法类型是一样的,里面都是通过调用父类的构造方法进行实现的,在这里,我主要以StringBuilder为例子讲解,StringBuffer就不重复累赘的讲啦。

1>构建一个初始容量为16的默认的字符串构建

1 public StringBuilder() {2super(16);3 },分之百的把自己推销给自己。

小学徒成长系列—StringBuilder StringBuffer关键源码解析

相关文章:

你感兴趣的文章:

标签云: