垃圾回收机制:
1.引用计数法:每个对象都有一个引用计数器,当对象被引用时,计数器加1,当引用失效时,计数器减1,当计数器为0时,对象被回收。垃圾回收器定期(周期性)找出那些不再被引用的对象,然后释放这些对象所占用的内存。
2. 标记-清除法:从根节点开始遍历所有对象,标记所有可达的对象,然后清除所有未被标记的对象。垃圾回收器定期(周期性)找出那些未被标记的对象,然后释放这些对象所占用的内存。
3. 复制算法:将内存分为两个相等的区域,每次只使用其中一个区域。当垃圾回收器运行时,它会将所有可达的对象复制 到另一个区域,然后释放原来的区域。垃圾回收器定期(周期性)运行,以保持内存的可用性。
4. 分代收集法:将对象分为不同的代,每一代都有不同的存活时间。垃圾回收器定期(周期性)运行,以保持内存的可用性。 包括0,1,2代,0代是刚刚创建的对象,1代是经过一次垃圾回收后仍然存活的对象,2代是经过两次垃圾回收后仍然存活的对象。大对象一般都在稳定的2代,即使需要回收也只是清空数组,因为大对象申请和回收的代价很高。