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: 线程不安全