1. 5.9 Stringhistorical

    1. 是什么 不可变、线程安全的字符串 2. 使用 3. 源码分析 3.1. 类的定义 String是不可变的 - 类使用final修饰 - 内部属性char value[]使用final修饰,说明引用不能改变 - 且内部没有对外提供修改内部属性char value[]的方法 3.2. 构造方法 3

  2. 5.14 StringBufferhistorical

    1. 是什么 线程安全的、可变字符串 其实就是在StringBuilder的基础上加了synchronized关键字 2. 如何使用 3. 原理分析 3.1. 构造函数 3.2. append方法 3.3. toString 3.4. subString

  3. 5.18 StringBuilderhistorical

    1. 是什么 可变的、线程不安全的字符串 有点像ArrayList的实现,底层使用char数组,不够容量时需要扩容 2. 如何使用 3. 原理分析 3.1. 构造方法 3.2. append方法 直接在内部的char数组后面添加字符 如果容量不够需要扩容,为原来的2倍+2 - AbstractBui

  4. 5.22 String比较historical

    1. StringBuilder vs StringBuffer vs String String StringBuffer StringBuilder ----------- ------ ------------ ------------- 是否线程安全 √ √ × 是否可变 × √ √