HotSpot VM使用分代垃圾收集器,而这个为人所熟知的垃圾收集器算法基于以下两个观察事实。
- 大多数分配对象的存活时间很短。
- 存活时间久的对象很少引用存活时间短的对象。
也就是大部分,甚至98%的Java对象都是“朝生夕死”。对于这件事,今天突然感觉很懵逼?这个数据的是通过观察出来的?
仔细想一想,我们多有的Java项目,无论是Web项目,还是桌面项目,在处理业务的时候,基本上都是在局部方法中进行new对象的操作,而这些new出来的对象也都是临时使用,方法结束,也就不再使用。那是不是就意味着在Minor GC时,大部分的对象就已经被回收了呢?
如果你有更好的解释,欢迎评论区留言,分享你的看法。
,