1. 5.9 Stringhistorical

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

  2. 5.10 LinkedListhistorical

    1. 是什么 底层由双向链表实现的顺序表 有序、可以重复 2. 如何使用 3. 原理分析 3.1. uml 可以看出LinkedList是个List、双端队列、可序列化、可克隆 3.2. 构造方法 由头节点、尾节点、长度构成 3.2.1. 队列的节点Node 结构如下图: 3.3. add方法 -

  3. 5.11 LinkedHashMaphistorical

    1. 是什么 - 使用双向链表+HashMap(数组+链表+红黑树)实现 - 相比于HashMap保存了顺序 - 迭代时输出的顺序是 - 按照插入节点的顺序来输出 - 也可以指定成按照访问的顺序输出(LRU) 2. 使用 - 按照插入节点的顺序来输出 - 按照访问的顺序输出 3. 实现 3.1. u

  4. 5.12 不可变对象historical

    如何创建一个不可变对象 - 类使用final修饰 - 内部属性使用final修饰 - 如果是这个属性是引用对象 - 没有对外提供修改内部属性value的方法 - 如果对外返回的是copy过的对象

  5. 5.13 LinkedHashSethistorical

    1. 是什么 2. 如何使用 3. 源码分析 3.1. 1.构造方法 3.2. 2.属性 3.3. 3.其他方法 同LinkedHashMap.md 4. 总结 底层使用LinkedHashMap实现,value使用newObject作为占位符

  6. 5.14 StringBufferhistorical

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

  7. 5.15 List与Array的转换historical

    1. Array转List 2. List转Array

  8. 5.16 Map比较historical

    1. HashMap1.7 vs HashMap1.8 HashMap1.7 HashMap1.8 ---------------------------- ---------- --------------- 数据结构 数组+链表 数组+链表+红黑树 冲突时链表中是头插法还是尾插法 头插 尾插 -

  9. 5.17 SynchronizedSethistorical

    就是sychronized块+set操作,参考: List:SynchronizedList

  10. 5.18 StringBuilderhistorical

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