【jvm】新生代和老年代

ops/2024/11/1 6:00:58/

目录

          • 1. 说明
          • 2. 新生代(Young Generation)
            • 2.1 定义与用途
            • 2.2 内存分配与回收
            • 2.3 特点
          • 3. 老年代(Old Generation)
            • 3.1 定义与用途
            • 3.2 内存分配与回收
            • 3.3 特点

1. 说明
  • 1.在Java虚拟机(JVM)中,新生代(Young Generation)和老年代(Old Generation)是垃圾回收(GC)机制中两个非常重要的概念,它们共同构成了堆内存(Heap)的主要部分。
2. 新生代(Young Generation)
2.1 定义与用途
  • 1.新生代是JVM中用于存放新创建的对象的内存区域。
  • 2.它被进一步划分为Eden区和两个Survivor区(通常为From和To区,有时也称为S0和S1区)。
2.2 内存分配与回收
  • 1.新创建的对象首先被分配到Eden区。
  • 2.当Eden区满时,会触发Minor GC(小型垃圾回收),将存活的对象转移到Survivor区中的一个(通常是Survivor From区)。
  • 3.在下一次Minor GC时,存活的对象会从当前的Survivor区移动到另一个Survivor区(Survivor To区),并清空原来的Survivor区。
  • 4.对象在Survivor区中的存活次数(称为年龄)达到某个阈值(默认是15)时,会被晋升到老年代。
2.3 特点
  • 1.新生代的空间相对较小,用于快速回收大量短命对象。
  • 2.Minor GC的频率较高,但回收效率也很高。
  • 3.绝大部分的Java对象的销毁都在新生代进行。
  • 4.IBM公司的专门研究表明,新生代中80%的对象都是朝生夕死的。
3. 老年代(Old Generation)
3.1 定义与用途
  • 1.老年代是JVM中用于存放长时间存活的对象的内存区域。
  • 2.当对象经过多次Minor GC仍然存活,或者对象太大无法直接放入新生代时,它们会被晋升到老年代。
3.2 内存分配与回收
  • 1.老年代的空间较大,用于存放存活时间较长的对象。
  • 2.当老年代空间满时,会触发Major GC(大型垃圾回收)或Full GC(全局垃圾回收),这会涉及到整个堆内存的垃圾回收操作。
3.3 特点
  • 1.老年代的空间增长相对较慢,因为大多数对象在新生代中就已经被回收。
  • 2.Major GC的频率较低,但回收耗时较长,因为需要扫描整个老年代。

http://www.ppmy.cn/ops/130054.html

相关文章

详解SQL单表查询

SQL单表查询 1. SELECT 语句的基本结构2. 查询所有列和指定列查询所有列查询特定列 3. WHERE 条件筛选比较运算符多条件查询:使用 AND 和 ORNOT 操作符 4. ORDER BY 进行排序多列排序 5. LIMIT 限制返回行数只获取前N行数据使用 LIMIT 和 OFFSET 进行分页查询 6. 常…

鸿蒙UI开发——基于全屏方案实现沉浸式界面

1、概 述 典型应用全屏窗口UI元素包括状态栏、应用界面和底部导航条。 其中状态栏和导航条,通常在沉浸式布局下称为避让区,避让区之外的区域称为安全区。 开发应用沉浸式效果主要指:通过调整状态栏、应用界面和导航条的显示效果来减少状态…

【三十八】【QT开发应用】vlcplayer视频播放器(一)实现视频播放,视频暂停,视频停止,进度条调节,音量调节,时长显示功能

效果展示 vlcplayer_test视频播放器 MainWidget.ui 注意控件的布局和命名,控件的命名和信号与槽函数的绑定有关,所以这点很重要。 下载VLC组件和环境配置 videolan下载地址我下载的是vlc-3.0.8-win64版本. 将下载的文件复制粘贴到项目文件中. 复制粘…

尚硅谷-react教程-求和案例-数据共享(下篇)-完成数据共享-笔记

#1024程序员节&#xff5c;征文# public/index.html <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>redux</title></head><body><div id"root"></div></body> </html&…

Jetson Xavier nx在Ubuntu18.04下安装ros2 使用奥比中光330

安装ROS2过程 添加ros2 软件源 sudo sh -c ‘echo “deb [arch=amd64] http://packages.ros.org/ros2/ubuntu bionic main” > /etc/apt/sources.list.d/ros2-latest.list’ sudo apt install curl gnupg2 lsb-release curl http://repo.ros2.org/repos.key | sudo apt-key…

Golang | Leetcode Golang题解之523题连续的子数组和

题目&#xff1a; 题解&#xff1a; func checkSubarraySum(nums []int, k int) bool {m : len(nums)if m < 2 {return false}mp : map[int]int{0: -1}remainder : 0for i, num : range nums {remainder (remainder num) % kif prevIndex, has : mp[remainder]; has {if …

神经网络:解析人工智能的智慧基石

神经网络&#xff1a;解析人工智能的智慧基石 一、引言 在当今科技飞速发展的时代&#xff0c;人工智能已经成为了一个备受关注的领域。而神经网络作为人工智能的重要组成部分&#xff0c;正逐渐改变着我们的生活和未来。那么&#xff0c;什么是神经网络呢&#xff1f;它又是…

Redis-概念、安装、基本配置

文章目录 一、Redis及Redis集群概念、分布式系统概念一-1 Redis是什么一-2 什么是分布式系统、分布式缓存一-3 什么是Redis集群、实现Redis集群的方法有哪些、这些跟Redis的sentinel和cluster有什么关系一-4 Redis的库一-5 Redis中的Key与Value是什么、如何进行操作使用它们添加…