JVM 有 Full GC,为什么还会出现 OutOfMemoryError呢?

栏目: IT技术 · 发布时间: 5年前

内容简介:平时有逛知乎的习惯,一般对JVM相关话题比较感兴趣。偶然看到这个问题,结果发现了一个很有意思的回复。既然在触发Full GC的时候,年老代和持久带都会被清理,那么为什么还会出现OOM问题?而且,对于强引用,当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。

平时有逛知乎的习惯,一般对JVM相关话题比较感兴趣。偶然看到这个问题,结果发现了一个很有意思的回复。

问题:

既然在触发Full GC的时候,年老代和持久带都会被清理,那么为什么还会出现OOM问题?

而且,对于强引用,当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。

那么Full GC机制的存在有何意义?

还是说FGC主要针对的是驻扎在年老代的软引用?既然如此,对于四种引用的方式如何抉择?总不能所有对象都创建引用队列使用软引用或者弱引用吧?

R大回复

这个问题的意思是:

为什么我请了佣人来收拾房间,我的房间还是会堆满?

那我还请佣人来干什么?

他不是号称能把我房间里的垃圾都清理干净的么?

问题是如果您房间里堆的都是宝贝(或者看起来都是宝贝)的话,佣人也没辙。

怎么判断是不是宝贝呢?

就看主人有没有用手抓着它——被抓住的宝贝如果有连接到别的宝贝的话那被连接到的也算上。 用力抓住的肯定是宝贝,一点没碰的肯定不是宝贝,半抓不抓着的先观望。

END

如果读完觉得有收获的话,欢迎点【好看】,关注【匠心零度】,查阅更多精彩历史!!!

JVM 有 Full GC,为什么还会出现 OutOfMemoryError呢?

让我“ 好看 ”  JVM 有 Full GC,为什么还会出现 OutOfMemoryError呢?


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

社交红利

社交红利

徐志斌 / 北京联合出版公司 / 2013-8 / 42

如今的互联网,社交网络已占据了主要的位置。如腾讯微博、微信、QQ空间、人人网、新浪微博、唱吧、美丽说、啪啪等等,都可以算是社交网络,将大部分活跃的人们聚集起来,通过文字、图片、语音等形式分享着身边的事。这些社交网络吸引着更多兴趣相投的陌生人成为朋友结成圈子,也衍生出的海量流量和机会,为业界和创业者提供着源源不绝的新机会。可以这样说,社交网络在将散落在人们中的需求汇聚起来,等待着企业来提供服务。因此......一起来看看 《社交红利》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具