1. Java中的三种对象
    1. 不变对象
    2. 基本不变对象
    3. 可变对象
  2. 对象安全构造
    1. 何为对象安全构造?
    2. 怎样达到目的?
      1. 在对象构造期间,不要公布this引用
      2. 不要隐式地暴露“this”引用
      3. 不要从构造函数内启动线程
  3. 对象安全发布
    1. 何为对象安全发布?
      1. 确保对象引用和状态对其他线程正确可见
    2. 安全发布技术
      1. 静态初始化器初始化对象引用
      2. 将引用存储到volatile域
      3. 将引用存储到正确创建对象的final域
      4. 将引用存储到由锁正确保护的域
  4. 三种对象安全发布方式
    1. 不变对象:任何机制
    2. 基本不变对象:安全发布
    3. 可变对象:安全发布+状态正确改变(锁)