Java每日一练_模拟面试题6(JVM的GC过程)

一、JVM虚拟机组成

JVM 五大内存区域:程序计数器,Java虚拟机栈,本地方法栈,java堆,方法区。

堆被划分为两个区域:年轻代(Young)、老年代(Tenured)。年轻代又被划分为三个区域:Eden、From Survivor、To Survivor。

二、GC过程

GC分为两种:Minor GC(或者叫Young GC),Full GC(或者称为Major GC)。

Minor GC主要是针对Eden区,而Full GC只发生在老年代。接下来介绍一下完整的GC过程:

1、新对象放置到Eden区

2、Eden满了触发MinorGC,蓝色对象转移到From Survivor

3、From Survivor转移到To Survivor,对象年龄+1

4、对象年龄达到15,转移到老年代

三、垃圾收集器对比

在GC过程中,不同的jdk版本、不同的区域会采用不同的收集器算法。

相关推荐
叶小鸡几秒前
Java 篇-项目实战-天机学堂(从0到1)-day7
java·开发语言
原来是猿1 分钟前
Linux线程同步与互斥(五):线程池的全面实现
linux·服务器·开发语言
何中应1 分钟前
记录一次Jenkins构建任务的坑
java·servlet·jenkins
eqwaak04 分钟前
PyTorch入门:10分钟搭建首个神经网络
开发语言·人工智能·pytorch·python
雪碧聊技术5 分钟前
上午题_计算机系统
java·开发语言
纤纡.6 分钟前
解锁 Python 实用编程技巧:线程、视觉识别、正则匹配与装饰器实战
开发语言·python·深度学习·opencv
t***54411 分钟前
如何在Dev-C++中配置Clang编译器
开发语言·c++
逆境不可逃12 分钟前
一篇速通RabbitMQ (从入门到生产实战:核心原理、高级特性与 Spring Boot 集成全解)
开发语言·后端·ruby
yuanpan16 分钟前
Python Pandas 库入门:介绍与基本使用教程
开发语言·python·pandas
m0_5150984216 分钟前
如何排查RAC节点被驱逐Eviction_CSS日志与宕机重启原因分析
jvm·数据库·python