Java学习之垃圾回收机制浅谈
*首先我们都知道 java的对象都是存储在堆中的。 但是java对于堆的内存分配, 由于有垃圾回收机制变得十分有效率。因为垃圾回收机制会将堆的内存进行整理和压缩。 下面我来介绍垃圾回收机制的工作性质及其原理。
有一种垃圾回收机制的设计是reference counting。 当一个对象的reference的count为0时, 则释放这个对象所占用的内存。但是这种设计有缺陷就是在于多个垃圾对象互相引用导致各自的reference count均不为0, 则无法释放。
JVM的自适应机制是垃圾回收机制的关键原理。
自适应机制包含 stop and copy 和 mark and sweep 两个模式。
stop and copy是指, 垃圾回收机制在扫描内存时候 ,发现小的对象, 分散的存在内存中时候, 会将小的对象copy到一起, 将分散的对象删除。当程序稳定后没有太多散碎的内存后会切换成mark and sweep模式。
mark and sweep是指,进行一次系统的扫描, 对活着的对象进行标记, 扫描结束之后, 将没有标记的对象进行清理。 当扫描时发现很多散碎的内存时, 会切换成stop and copy机制。

浙公网安备 33010602011771号