JVM 有 Full GC,为什么还会出现 OutOfMemoryError呢?
点击上方“方志朋”,选择“设为星标”
回复”666“获取新整理的面试文章
来源:zhihu.com/question/38511221
平时有逛知乎的习惯,一般对JVM相关话题比较感兴趣。偶然看到这个问题,结果发现了一个很有意思的回复。
问题:
既然在触发Full GC的时候,年老代和持久带都会被清理,那么为什么还会出现OOM问题?
而且,对于强引用,当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。
那么Full GC机制的存在有何意义?
还是说FGC主要针对的是驻扎在年老代的软引用?既然如此,对于四种引用的方式如何抉择?总不能所有对象都创建引用队列使用软引用或者弱引用吧?
R大回复
这个问题的意思是:
为什么我请了佣人来收拾房间,我的房间还是会堆满?
那我还请佣人来干什么?
他不是号称能把我房间里的垃圾都清理干净的么?
问题是如果您房间里堆的都是宝贝(或者看起来都是宝贝)的话,佣人也没辙。
怎么判断是不是宝贝呢?
就看主人有没有用手抓着它——被抓住的宝贝如果有连接到别的宝贝的话那被连接到的也算上。用力抓住的肯定是宝贝,一点没碰的肯定不是宝贝,半抓不抓着的先观望。
热门内容:炫酷,SpringBoot+Echarts实现用户访问地图可视化(附源码)API 面试四连杀:接口如何设计?安全如何保证?签名如何实现?防重如何实现
为什么 SQL 语句不要过多的 join?最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。明天见(。・ω・。)ノ♡
JVM 有 Full GC,为什么还会出现 OutOfMemoryError呢?相关推荐
- JVM学习之GC常用算法
2019独角兽企业重金招聘Python工程师标准>>> 出处:博客园左潇龙的技术博客--http://www.cnblogs.com/zuoxiaolong,多谢分享 GC策略解决了 ...
- JVM基础系列第14讲:JVM参数之GC日志配置
说到 Java 虚拟机,不得不提的就是 Java 虚拟机的 GC(Garbage Collection)日志.而对于 GC 日志,我们不仅要学会看懂,而且要学会如何设置对应的 GC 日志参数.今天就让 ...
- JVM内存管理------GC算法精解(五分钟教你终极算法---分代搜集算法)
转载自 JVM内存管理------GC算法精解(五分钟教你终极算法---分代搜集算法) 引言 何为终极算法? 其实就是现在的JVM采用的算法,并非真正的终极.说不定若干年以后,还会有新的终极算法, ...
- JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法)
转载自 JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法) 相信不少猿友看到标题就认为LZ是标题党了,不过既然您已经被LZ忽悠进来了,那就好好的享受一顿算法大餐吧.不过LZ丑 ...
- 触发JVM进行Full GC的情况及应对策略
堆内存划分为 Eden.Survivor 和 Tenured/Old 空间,如下图所示: 从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC,对老年代GC称为M ...
- JVM为什么需要GC
社区内有人发起了一个讨论,关于JVM是否一定需要GC?他们认为应用程序的回收目标是构建一个仅用来处理内存分配,而不执行任何真正的内存回收操作的 GC.即仅当可用的 Java 堆耗尽的时候,才进行顺序的 ...
- JVM之枚举GC Roots 根节点,安全点,安全区域。
引言 判断对象是否被回收的算法有引用计数算法和可达性分析算法. 引用计数法: 可达性分析算法:是根据GC Roots根节点作为起始点向下搜索引用链,找不到引用链则判定对象可回收. 可作为GC Roo ...
- 手把手教你如何写出完美的JVM的Young GC
模拟JVM的Young GC JVM参数示范(基于JDK 1.8) 用如下JVM参数运行代码: # 初始新生代大小 5M -XX:NewSize=5242880 # 最大新生代大小 5M -XX:Ma ...
- JVM——成为Java GC专家(1)
原文: Understanding Java Garbage Collection JVM--成为Java GC专家(1) 理解Java垃圾回收机制(GarbageCollection,简称GC)是如 ...
- JVM系列二:GC策略内存申请、对象衰老
JVM里的GC(Garbage Collection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpot VM GC 的种类 现在比较常用的是分代收集(generatio ...
最新文章
- 南京大学计算机考研机试,2018南大CS考研机试答案
- 字节2020算法岗校招一面
- HTTP请求常见状态码
- VisualStudio中的代码段
- 英国拟对英伟达收购Arm展开深入调查
- 余弦距离、欧氏距离和杰卡德(Jaccard)相似性度量的比较
- javascript基础 之 void
- Unix 激荡 50 年:驱动 Android、iOS 的操作系统是如何从失败开始的?
- 17.如何正确使用TCP
- 计算机重启恢复到推荐分辨率,为什么重启之后电脑界面分辨率会变
- 手机扫描电脑二维码登录原理
- 工具-typora-自定义快捷键
- 机器学习-准确率、灵敏度、特异度、PPV、NPV、F1计算方法
- 源码安装nginx 1.23.1
- 文本溢出隐藏显示... 鼠标移动到元素显示全部内容
- 关于pip 的依赖项解析器当前未考虑安装的所有包。此行为是以下依赖项冲突的根源。
- Barsetto百胜图BAV02自助咖啡机,创造便捷生活的无限可能
- Genymotion启动不了?——绝对零度试验机
- 卡巴斯基关于360胡乱解读“超级工厂”的声明
- java+uniapp苹果内购