String :
早起的版本:
private final char[] value;
now:
// The associated character storage is managed by the runtime. We only
// keep track of the length here.
//
// private final char value[];
private final int count;
不过,两种版本都可以肯定,String 本身的内容不能修改的。对String的操作,比如拼接,是通过重新生成一个 String 对象来达到。
StringBuilder 与 StringBuffer 有公共父类 AbstractStringBuilder(抽象类)。
该 abstract 类有个成员变量:
/** * The value is used for character storage. */ char[] value;
我们对 StringBuffer 和 StringBuilder 的操作,比如append等,不用生成新的对象,只是操作 char[].
StringBuffer: 线程安全
StringBuilder: 线程不安全
本文探讨了String类的不可变性特点,并对比了不同版本的实现方式。同时介绍了StringBuilder和StringBuffer的设计原理,强调了它们如何高效地进行字符串拼接,以及线程安全性上的区别。

被折叠的 条评论
为什么被折叠?



