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 ...
最新文章
- RT-Thread智能车培训计划-2021
- 递归实现数字排列组合
- 丹佛斯冷媒尺汉化下载_制冷系统十大仿真软件!制冷百家网下载
- 洛谷 - P4016 负载平衡问题(最小费用最大流)
- 带你理清 Java 混乱的日志体系 - log4j、logback、log4j2、jcl、SLFJ 究竟是啥关系?
- 常见电脑字符编码总结
- Shell命令-文件及内容处理之grep(egrep)、join
- 大数据-03-Spark入门
- 人月神话:微软开发模式和原则[转]
- 消息中间件解决方案-JMS-ActiveMQ
- PySpark-Recipes : 写数据到Hive(local data)
- 【BZOJ1703】【usaco2007margold】ranking the cows 奶牛的魅力排名
- 软件设计师-知识产权和标准化知识
- SoapUI 接口测试偶遇返回值乱码解决
- 【串口服务器】串口转WIFI
- 使用Tasker和企业微信实现在安卓手机自动转发短信至微信
- 智课雅思词汇---二十五、-ate
- Location服务之LocationManager
- [论文] Feature Squeezing:Detecting Adversarial Examples in Deep Neural Networks
- SATA 3.3协议 Error handing机制