网站首页 > 技术文章 正文
前置知识
- Minor GC:新生代收集,又称为Young GC;
- Major GC:老年代垃圾收集,又称为Old GC;
- Full GC:整个java对和方法区的垃圾收集;
gc的年龄是指对象在垃圾回收收集(gc)过程中的年龄,那么在了解它之前,我首先看看,jvm的内存分配策略是什么样的。
内存分配策略
对象出生在Eden区,当Eden区空间不足时会触发Minor GC,并将存活的对象移动至Survivor区中,同时将对象的年龄设为1,由于回收的操作比较频繁,因此每一次的Minor GC都会使对象的年龄信息增加1,当年龄达到默认的15次时,就会晋升至老年代,可以通过参数来调整,这里有个前提,如果对象是大对象(超过Eden的一半)的话,会直接分配中至老年代。
在Survivor中,相同年龄的所有对象大小总和大于Survivor空间的一半时,年龄大于或者等于该年龄的对象会直接进入到老年代,无需年龄达到默认要求。
因为对象头记录位只有4位,因此1111的值为15,多以gc的年龄最大为15次
对象信息
对象头信息包括了Mark Word、?类型指针(?Klass Pointer)?,?以及对于Java数组对象还包括数组长度。?
- Mark Word:?用于存储对象自身的运行时数据,?如快速定位的哈希码、?GC分代年龄、?锁状态标志、?线程持有的锁、?偏向线程ID、?偏向时间戳等。?Mark Word被设计成一个非固定的数据结构,?以便在极小的空间内存储尽量多的信息,?它会根据对象的状态复用自己的存储空间。
- 类型指针(?Klass Pointer)?:?指向对象的类的元数据指针,?虚拟机通过这个指针确定这个对象是哪个类的实例以及类的字段、?方法信息。?
- 数组长度:?如果对象是Java数组,?对象头中还有一块用于记录数组长度(?Array Length)?的数据,?因为普通对象可以通过Java对象元数据确定大小,?而数组对象不可以。
因此对于以上问题的答案,我们分析可知,对象的GC年龄存储在对象头信息的Mark Word中。
猜你喜欢
- 2024-11-04 从原理聊JVM(一):染色标记和垃圾回收算法
- 2024-11-04 一文读懂String类的基本数据类型 strings类型
- 2024-11-04 阿里&北大:深度哈希算法最新综述
- 2024-11-04 数据结构与算法之哈希表 数据结构哈希函数
- 2024-11-04 区块链中两个最重要的数据加密安全技术,非对称加密、哈希计算
- 2024-11-04 如何识别文件的真假 识别文件真实类型最有效的方式
- 2024-11-04 大厂必备技能:数据结构之哈希表 数据结构课程设计哈希表设计
- 2024-11-04 向量数据库-相似性搜索概述 向量相似度算法
- 2024-11-04 两个对象不相等,HashCode 有可能相等吗?
- 2024-11-04 JAVA教程——equals和hashCode java中hashcode的用法
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)