OOM与内存优化

Java对象的生命周期

  1. 创建 为对象分配内存空间,从父到子依次调用构造函数,构造对象。
  2. 应用 对象至少被一个强引用持有。
  3. 不可见 当没有强引用时,对象不可见。
  4. 不可达 GC开始做可达性分析。
  5. 收集 对象被标记不可达对象,等待GC回收。
  6. 终结 回收对象,重新分配内存空间。

Java对象的内存布局