点击上方“方志朋”,选择“设为星标”

回复”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呢?相关推荐

  1. JVM学习之GC常用算法

    2019独角兽企业重金招聘Python工程师标准>>> 出处:博客园左潇龙的技术博客--http://www.cnblogs.com/zuoxiaolong,多谢分享 GC策略解决了 ...

  2. JVM基础系列第14讲:JVM参数之GC日志配置

    说到 Java 虚拟机,不得不提的就是 Java 虚拟机的 GC(Garbage Collection)日志.而对于 GC 日志,我们不仅要学会看懂,而且要学会如何设置对应的 GC 日志参数.今天就让 ...

  3. JVM内存管理------GC算法精解(五分钟教你终极算法---分代搜集算法)

    转载自   JVM内存管理------GC算法精解(五分钟教你终极算法---分代搜集算法) 引言 何为终极算法? 其实就是现在的JVM采用的算法,并非真正的终极.说不定若干年以后,还会有新的终极算法, ...

  4. JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法)

    转载自  JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法) 相信不少猿友看到标题就认为LZ是标题党了,不过既然您已经被LZ忽悠进来了,那就好好的享受一顿算法大餐吧.不过LZ丑 ...

  5. 触发JVM进行Full GC的情况及应对策略

    堆内存划分为 Eden.Survivor 和 Tenured/Old 空间,如下图所示: 从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC,对老年代GC称为M ...

  6. JVM为什么需要GC

    社区内有人发起了一个讨论,关于JVM是否一定需要GC?他们认为应用程序的回收目标是构建一个仅用来处理内存分配,而不执行任何真正的内存回收操作的 GC.即仅当可用的 Java 堆耗尽的时候,才进行顺序的 ...

  7. JVM之枚举GC Roots 根节点,安全点,安全区域。

    引言  判断对象是否被回收的算法有引用计数算法和可达性分析算法. 引用计数法: 可达性分析算法:是根据GC Roots根节点作为起始点向下搜索引用链,找不到引用链则判定对象可回收. 可作为GC Roo ...

  8. 手把手教你如何写出完美的JVM的Young GC

    模拟JVM的Young GC JVM参数示范(基于JDK 1.8) 用如下JVM参数运行代码: # 初始新生代大小 5M -XX:NewSize=5242880 # 最大新生代大小 5M -XX:Ma ...

  9. JVM——成为Java GC专家(1)

    原文: Understanding Java Garbage Collection JVM--成为Java GC专家(1) 理解Java垃圾回收机制(GarbageCollection,简称GC)是如 ...

  10. JVM系列二:GC策略内存申请、对象衰老

    JVM里的GC(Garbage Collection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpot VM GC 的种类 现在比较常用的是分代收集(generatio ...

最新文章

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

热门文章

  1. 用chrome的snippets片段功能创建页面js外挂程序,从控制台创建js小脚本
  2. CentOS7.4到Elasticsearch一路坑(五)
  3. JQUERY动态生成当前年份的前5年以及后 2年
  4. Android自动化测试框架
  5. Hash join 和nested loop
  6. 【组队学习】【30期】李宏毅机器学习(含深度学习)
  7. 谢文睿:西瓜书 + 南瓜书 吃瓜系列 2. 多元线性回归
  8. Matlab数据的可视化 -- 三维表面图
  9. Matlab与线性代数--矩阵的LU分解
  10. 程序员SQL都不会?能干啥?资深研发:别再瞎努力了!