• 向栈分配 # 不要调参数
    • 好处
      • 不必GC
    • 条件
      • 线程私有小对象
      • 无逃逸
      • 可标量替换(基本类型替换整个对象)
  • 过大,分配到老年代
  • 线程本地分配 # TLAB(Thread Local Allocation Buffer), 不要调参数
    • 好处
      • 为了减少线程争用
    • 条件
      • 小对象
      • 占用eden, 默认每个线程占1%
  • 伊甸区
  • s1,s2
    • 次数 # 最大15(对象头上空间决定)
      • Parallel Scavenge 15
      • CMS 6
      • G1 15
    • 动态年龄
      • eden + s1 复制到s2, 超过s2总内存一半时,年龄最大的对象进入老年代
    • 分配担保
      • YGC时survivor区空间不够, 直接进入老年代
  • GC清除或到老年代