对象怎样才会进入老年代?

news2024/12/30 2:15:54

JVM

  • 对象内存分配:
  • 空间担保机制
  • 案例演示:对象分配过程
    • 01-大对象直接进入老年代
    • 02-对象内存分配的过程:
    • 案例演示:内存担保机制

对象内存分配:

  • 新生代:新对象大多数都默认进入新生代的Eden区
  • 进入老年代的条件:四种情况
  1. 存活年龄太大,默认超过15次【-XX:MaxTenuringThreshold】
  2. 动态年龄判断:MinorGC之后,发现Survivor区中的一批对象的总大小大于了这块Survivor区的50%,那么就会将此时大于等于这批对象年龄最大值的所有对象,直接进入老年代。
    举个栗子:Survivor区中有一批对象,年龄分别为年龄1+年龄2+年龄n的多个对象,对象总和大小超过了Survivor区域的50%,此时就会把年龄n及以上的对象都放入老年代。
    为什么会这样?希望那些可能是长期存活的对象,尽早进入老年代。
    -XX:TargetSurvivorRatio可以指定
  3. 大对象直接进入老年代:前提是Serial和ParNew收集器
    举个栗子:字符串或数组
    -XX:PretenureSizeThreshold 一般设置为1M
    为什么会这样?为了避免大对象分配内存时的复制操作降低效率。避免了Eden和Survivor区的复制
  4. MinorGC后,存活对象太多无法放入Survivor

空间担保机制

空间担保机制:当新生代无法分配内存的时候,我们想把新生代的老对象转移到老年代,然后把新对象放入腾空的新生代。此种机制我们称之为内存担保。

在这里插入图片描述
在这里插入图片描述

案例演示:对象分配过程

01-大对象直接进入老年代

package com.hero.jvm.object;
/**
* 测试:大对象直接进入到老年代
* -Xmx60m -Xms60m -XX:NewRatio=2 -XX:SurvivorRatio=8 -XX:+PrintGCDetails
* -XX:PretenureSizeThreshold
*
*/
public class YoungOldArea {
	public static void main(String[] args) {
		byte[] buffer = new byte[1024*1024*20]; //20M
	}
}

-XX:NewRatio=2 新生代与老年代比值
-XX:SurvivorRatio=8 新生代中,Eden与两个Survivor区域比值
-XX:+PrintGCDetails 打印详细GC日志
-XX:PretenureSizeThreshold 对象超过多大直接在老年代分配,默认值为0,不限制

在这里插入图片描述

02-对象内存分配的过程:

在这里插入图片描述
在这里插入图片描述

案例演示:内存担保机制

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

盲盒小程序开发:线上盲盒带来的发展

盲盒在我国的发展一直处于稳步上升阶段,盲盒的未知性和刺激性为消费者带来了全新的娱乐消费模式。并且盲盒具有的收藏价值也吸引着消费者进行复购,使消费者欲罢不能。在盲盒的不断创新发展,形成了一套可持续发展的商业模式,具有较…

企业微信怎么变更企业名称?

企业微信变更主体有什么作用?现在很多公司都用企业微信来加客户,有时候辛辛苦苦积累了很多客户,但是公司却因为各种各样的原因需要注销,那么就需要通过企业微信变更主体的方法,把企业微信绑定的公司更改为最新的。企业…

并发编程(4)共享模型之无锁

6 共享模型之无锁 本章内容 CAS 与 volatile原子整数原子引用原子累加器Unsafe 6.1 问题提出 有如下需求,保证 account.withdraw 取款方法的线程安全 import java.util.ArrayList; import java.util.List;interface Account {// 获取余额Integer getBalance();…

spring框架介绍

spring 1.优点 1)针对接口编程,解耦合 2)aop:变向切面编程,动态增加功能 3)方便集成框架,mybatis,hibernate,strust等 4)降低j2ee接口的使用难度 2.spring是干什么的 管理bean及bean…

私域运营-需要认清的事实

一、私域不能单纯依靠微信渠道 误区:很多企业仍停留在如何让用户在微信去分享裂变,然后带动新用户的阶段。 私域的核心在于“开源节流”,就是如何通过更多渠道获取更多客户,并且避免客户的批量流失。 私域讲究的是如何从公域的“…

【IDEA】安装Jrebel实现热部署

前言 devtool虽然也可以实现热部署 但是新增完方法和修改完参数后 热部署不生效 需要重启 而Jrebel却不用 功能也比devtool强大 但是收费 这里教大家怎么使用 插件下载 激活Jrebel

Qiskit模块介绍

中文版reference Terra Qiskit最基本的模块,相当于Qiskit包的前端,包含了Quantum Circuits、Transpiler等,包括了定义、编译量子电路,以及在模拟器或是量子设 备上运行电路的工具。 Aer 相当于Qiskit包的后端,高性能模拟器&…

DC与DCT DCG的区别

先进工艺不再wire load model进行静态时序分析,否则综合结果与后端物理电路差距很大,因此DC综合工具也进行了多次迭代,DC工具有两种模式,包括wire load mode和Topographical Mode,也就是对应的DC Expert和DC Ultra。 …

牛客网 HJ10 字符个数统计

思路: 我们创建两个数组,一个数组接受输入的字符,另一个数组用来统计字符种数 同时将该字符作为下标传给另一个数组,如果另一个数组的这个下标对应的值为0,说明该字符没有被统计过,计数器加1,…

vue+node.js美食分享推荐管理系统 io551

,本系统采用了 MySQL数据库的架构,在开始这项工作前,首先要设计好要用到的数据库表。该系统的使用者有二类:管理员和用户,主要功能包括个人信息修改,用户、美食类型、美食信息、订单信息、美食分享、课程大…

洛谷P8627 [蓝桥杯 2015 省 A] 饮料换购

#先看题目 题目描述 乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊 C 型饮料,凭 3 个瓶盖可以再换一瓶 C 型饮料,并且可以一直循环下去(但不允许暂借或赊账)。 请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那…

AD24-PCB的DRC电气性能检查

1、 2、如果报错器件选中,不能跳转时,按下图设置 3、开始出现以下提示时处理 4、到后期,错误改得差不多的时候;出现以下的处理步骤 ①将顶层和底层铜皮选中,移动200mm ②执行以下操作 ③将铜皮在移动回来,进…

使用向量数据库pinecone构建应用01:相似语义检索 Semantic Search

Building Applications with Vector Databases 下面是DeepLearning.AI上面这门课的学习笔记:https://www.deeplearning.ai/short-courses/building-applications-vector-databases/ Learn to create six exciting applications of vector databases and implement…

css3盒子

盒子模型 一.看透网页布局本质二.认识盒子三.盒子的边框(border)1.概念2.简写及分开写法3.合并问题(会相加)4.边框会影响盒子实际大小 四.盒子的内边距(padding)1.概念2.简写3.内边距会影响盒子实际大小4.特…

【Linux】docker构建环境编译运行linux内核

文章目录 1. 使用docker构建linux内核编译运行环境1.1. 为普通用户安装docker并验证是否安装成功1.1.1. 安装docker稳定版1.1.2. 启动docker1.1.3. 将当前用户加入docker用户组1.1.4. 验证docker是否安装成功 1.2. docker基本使用 环境说明 操作系统:ubuntu 22.04.4…

Unity(第四部)新手组件

暴力解释就是官方给你的功能;作用的对象上面如: 创建一个球体,给这个球体加上重力 所有物体都是一个空物体,加上一些组件才形成了所需要的GameObject。 这是一个空物体,在Scene场景中没有任何外在表现,因为…

【数据分享】不同共享社会经济路径下中国未来280个城市土地数量数据集(免费获取)

了解未来城市土地数量对于城市规划、社会经济发展和气候变化研究具有重要意义。通过分析不同共享社会经济路径下中国未来城市土地数量的数据,可以为未来城市发展趋势和可持续规划提供科学依据。 本次我们给大家带来的是不同共享社会经济路径下中国未来城市土地数量…

【Docker 的安装:centos】

文章目录 1 :peach:各版本平台支持情况:peach:2 :peach:CentOS 安装:peach:2.1 :apple:安装依赖:apple:2.2 :apple:安装 Docker:apple:2.3 :apple:实战经验:apple:2.3.1 :lemon:Docker 镜像源修改:lemon:2.3.2 :lemon:Docker 目录修改:lemon: 1 🍑各版本平台支持情况…

高通 Android 12 Settings不显示版本号问题

1、最近项目遇到一个奇葩问题,编译系统版本号不见了? 2、一开始我想着可能是自己代码没有make clean结果编译几个小时,然后烧录固件发现还是未生效。 3、然后这时候我又去看git log review最近修改也没有太大发现(待定&#xff…

模型 金字塔原理

系列文章 分享 模型,了解更多👉 模型_总纲目录。清晰逻辑,有效沟通。 1 金字塔原理的应用 1.1 应用金字塔原理提出一个新产品的市场推广策略 确认结论:我们应该采取在线社交媒体广告和口碑营销的策略来推广新产品。 构建层级1&…