垃圾回收:Young vs Old Generations

垃圾回收

垃圾回收运行与heap内存,用于移除没有任何引用的对象。首先来看Oracle官方对垃圾回收的定义:

自动垃圾回收是一个过程,查找堆内存,标记哪些对象正在使用,哪些对象没有被使用,然后删除没有使用的对象。使用中的对象或被引用的对象意味着你的程序任然有指针指向那个对象。不在使用或没有引用的对象,意思是对象不被程序的任何部分引用。因此没有引用对象的内存就可以清除。

Young Generation and Old Generation新生代和老年代

谈到内存使用的时候会涉及栈和堆内存。新创建的对象会分配到堆内存中。heap内存的使用如下图所示:

HotSpot Heap Structure by Oracle

Young Generation包括:Eden,Survivor0(S0),Survivor1(S1)

参考