直通BAT JVM必考题:Minor GC、Major GC、Full GC的区别

Java面试过程,JVM属于必考题系列:

直通BAT JVM必考题:Minor GC、Major GC、Full GC的区别

直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置

直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结

直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景

直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解

直通BAT必考题系列:深入剖析JVM之G1收集器、及回收流程、与推荐用例


今天主要谈谈JVM GC的类型和策略,特别是大家经常混淆的Minor GC、Major GC、Full GC,年轻代GC、老年代GC,之间有什么区别和联系。

Minor GC

JVM堆内存被分为两部分:年轻代(Young Generation)和老年代(Old Generation)。


1.年轻代

年轻代是所有新对象产生的地方。当年轻代内存空间被用完时,就会触发垃圾回收。这个垃圾回收叫做Minor GC。年轻代被分为3个部分——Enden区和两个Survivor区。

年轻代空间的要点:

  1. 大多数新建的对象都位于Eden区。

  2. 当Eden区被对象填满时,就会执行Minor GC。并把所有存活下来的对象转移到其中一个survivor区。

  3. Minor GC同样会检查存活下来的对象,并把它们转移到另一个survivor区。这样在一段时间内,总会有一个空的survivor区。

  4. 经过多次GC周期后,仍然存活下来的对象会被转移到年老代内存空间。通常这是在年轻代有资格提升到年老代前通过设定年龄阈值来完成的。

2.年老代

年老代内存里包含了长期存活的对象和经过多次Minor GC后依然存活下来的对象。通常会在老年代内存被占满时进行垃圾回收。

Major GC

老年代的垃圾收集叫做Major GC,Major GC通常是跟full GC是等价的,收集整个GC堆。

Minor GC和Major GC其实就是年轻代GC和年老年GC的俗称。而在Hotspot VM具体实现的收集器:Serial GC, Parallel GC, CMS, G1 GC中,大致可以对应到某个Young GC和Old GC算法组合。

分代GC

针对HotSpot VM的实现,其实GC的准确分类可以分为:

  1. 分代GC

  2. Full GC

以及后续的G1的分区收集本质其实还是一个分代收集器,但是和之前的各类回收器不同,它同时兼顾年轻代和老年代。

分代GC并不收集整个GC堆的模式,而是只专注分代收集

  1. Young GC:只收集年轻代的GC

  2. Old GC:只收集年老代的GC(只有CMS的concurrent collection是这个模式)

  3. Mixed GC:收集整个young gen以及部分old gen的GC(只有G1有这个模式)

Full GC

Full GC定义是相对明确的,就是针对整个新生代、老生代、元空间(metaspace,java8以上版本取代perm gen)的全局范围的GC。


money.jpg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479958.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matplotlib绘制多张图、多子图、多例图

绘制多图 关键: fig plt.figure(1) 表示新建第几个图 import matplotlib.pyplot as pltfig plt.figure(1) plt_rec_loss [1,2,3,4,5,6] plt_rec_recall [4,3,6,5,8,9] plt.xlabel("epoch") plt.ylabel("loss") plt.plot(range(len(plt_re…

jieba分词并做分析

Github:结巴分词地址 https://github.com/fxsjy/jieba 几种分词方法的简单使用:一 . jieba安装、示例 pip install jieba,jieba分词的语料是基于人民日报。分词示例1 import jieba 2 3 str1 江州市长江大桥 4 word_object jieba.cut(s…

研讨会 | CCF TF 第 17 期:认知计算产业化落地

CCF TF 技术前线只为技术专家CCFTF第17期主题 认知计算产业化落地2019年05月11日上海斯波特酒店五楼(上海市南丹路15号,徐汇区政府对面)人类迈入人工智能时代,技术的发展使得机器可以从大数据中提取信息,串联成知识&a…

短网址系统

文章目录1. 短网址服务整体介绍2. 如何通过哈希算法生成短网址?2.1 如何让短网址更短2.2 如何解决哈希冲突?2.3 如何优化哈希算法生成短网址的性能?3. 如何通过ID生成器生成短网址?3.1 相同的原始网址可能会对应不同的短网址3.2 如…

一个神经元的价值和一个神经病的坚持

作者 | 周博磊来源 | 机器之心一个神经元能够催生多少故事?香港中文大学信息工程系助理教授周博磊近日撰文介绍了他自 2015 年开始至今对神经元的研究经历。最近,他与 David Bau、朱俊彦等人合作的神经元研究论文发表在了 PNAS 杂志上。以下是周博磊的原…

直通BAT必考题系列:深入剖析JVM之G1收集器、及回收流程、与推荐用例

金三银四马上到了,即将进入面试的高峰期。在BAT面试中,JVM基本都是必考的系列。你至少需要掌握JVM内存模型与JVM参数详细配置,JVM的4种垃圾回收算法、垃圾回收机制与总结,以及今天重点谈到的JVM垃圾回收算法的实现:JVM…

多任务学习方法

最近一直在做多任务,但是效果好象没什么提升,因为都是凭自己的想法和感觉在做。于是上网查找了一些这方面的资料,寻求一些理论上的支撑和前人经验上的帮助。 多任务学习: 故名思意,就是多个任务一起学习。为什么要进行…

idea项目目录结构不是树形(横向变纵向)

关闭IDEA 删除项目文件夹下的.idea文件夹 重新用IDEA工具打开项目

曹羽 | 从知识工程到知识图谱全面回顾

本文转载自公众号:集智俱乐部。文本挖掘和图形数据库 | ©ontotext导语知识工程是符号主义人工智能的典型代表,近年来越来越火的知识图谱,就是新一代的知识工程技术。知识工程将如何影响未来人工智能领域的发展,甚至让计算机拥…

4大JVM性能分析工具详解,及内存泄漏分析方案

谈到性能优化分析一般会涉及到: Java代码层面的,典型的循环嵌套等 还会涉及到Java JVM:内存泄漏溢出等 MySQL数据库优化:分库分表、慢查询、长事务的优化等 阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化…

Reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are

情况:就是本来你的 tensor 是有东西的,代码也应该是没问题的,百度无果,debug无果。 原因:突然发现了这一行 failed to allocate 202.56M (212402176 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY: out of memory 然后…

从 0 搭建一个工业级推荐系统

推荐系统从来没像现在这样,影响着我们的生活。当你上网购物时,天猫、京东会为你推荐商品;想了解资讯,头条、知乎会为你准备感兴趣的新闻和知识;想消遣放松,抖音、快手会为你奉上让你欲罢不能的短视频。而驱…

最全中文停用词表整理(1893个)

在网上搜罗了一下&#xff0c;发现这个停用词还是挺好用的&#xff1a; ! " # $ % &( ) *, - -- . .. ... ...... ................... ./ .一 .数 .日 / // 0 1 2 3 4 5 6 7 8 9 : :// :: ; <> >> ?A Lex [ \ ] ^ _exp sub sup | } ~ ~~~~Δ Ψ γ…

论文浅尝 | 虚拟知识图谱:软件系统和应用案例综述

本文转载自公众号&#xff1a;DI数据智能。Virtual Knowledge Graphs: An Overview of Systems and Use Cases作者&#xff1a;Guohui Xiao, Linfang Ding, Benjamin Cogrel & Diego Calvanese供稿&#xff1a;Guohui Xiao编者按&#xff1a;Data Intelligence 发表意大利博…

LeetCode 169. 求众数(摩尔投票)

文章目录1. 题目信息2. 解题思路3. 代码3.1 排序3.2 map计数3.3 摩尔投票1. 题目信息 给定一个大小为 n 的数组&#xff0c;找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在众数。 示例 1:输入…

阿里P8架构师谈:JVM的内存分配、运行原理、回收算法机制

不管是BAT面试&#xff0c;还是工作实践中的JVM调优以及参数设置&#xff0c;或者内存溢出检测等&#xff0c;都需要涉及到Java虚拟机的内存模型、内存分配&#xff0c;以及回收算法机制等&#xff0c;这些都是必考、必会技能。 JVM内存模型 JVM内存模型可以分为两个部分&…

Keras共享某个层

对一个层的多次调用&#xff0c;就是在共享这个层。 input1 Input(shape[28,28]) input2 Input(shape[28,28]) x1 Flatten()(input1) x1 Dense(60,activation"relu")(x1) x2 Flatten()(input2) x2 Dense(60,activation"relu")(x2)d Dense(10, acti…

我的BERT!改改字典,让BERT安全提速不掉分(已开源)

文 | 苏剑林编 | 小轶背景当前&#xff0c;大部分中文预训练模型都是以字为基本单位的&#xff0c;也就是说中文语句会被拆分为一个个字。中文也有一些多粒度的语言模型&#xff0c;比如创新工场的ZEN和字节跳动的AMBERT&#xff0c;但这类模型的基本单位还是字&#xff0c;只不…

2020年考证时间表汇总!这些证书值得拥有!

原文地址&#xff1a; https://zhuanlan.zhihu.com/p/100824416 2020年考证时间表汇总&#xff01;这些证书值得拥有&#xff01;已认证的官方帐号154 人赞同了该文章昨日之日不可留&#xff0c;2019年已然过去&#xff0c;2020年的我们不能再一成不变&#xff01;快根据自身情…

征稿 | 2019年全国知识图谱与语义计算大会(CCKS2019)第二轮征稿启事

2019年全国知识图谱与语义计算大会China Conference on Knowledge Graph and Semantic Computing (CCKS 2019)2019年8月24日-27日&#xff0c;杭州征稿截止: 2019年5月18日全国知识图谱与语义计算大会&#xff08;CCKS: China Conference on Knowledge Graph and Semantic Comp…