jvm 什么是对象头,里面有什么
在 HotSpot 虚拟机中,一个对象的存储结构分为3块区域:对象头(Header)、实例数据(Instance Data) 和 对齐填充(Padding);
**对象头(Header):**包含两部分,第一部分用于存储对象自身的运行时数据,如哈希码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程 ID、偏向时间戳等,32 位虚拟机占 32 bit,64 位虚拟机占 64 bit,官方称为 ‘Mark Word’;
第二部分是类型指针,即对象指向它的类的元数据指针,虚拟机通过这个指针确定这个对象是哪个类的实例,另外,如果是Java数组,对象头中还必须有一块用于记录数组长度的数据,因为普通对象可以通过 Java 对象元数据确定大小,而数组对象不可以;
**实例数据(Instance Data):**程序代码中所定义的各种成员变量类型的字段内容(包含父类继承下来的和子类中定义的);
**对齐填充(Padding):**不是必然需要,主要是占位,保证对象大小是某个字节的整数倍,HotSpot虚拟机,任何对象的大小都是8字节的整数倍;
https://blog.csdn.net/weixin_39982236/article/details/110724755
jvm 什么是对象头,里面有什么相关推荐
- JVM - 剖析Java对象头Object Header之指针压缩
文章目录 Pre 指针压缩 论证压缩效果 UseCompressedOops & UseCompressedClassPointers [指针压缩]开启 VS 关闭 指针压缩的目的 为什么堆内 ...
- 64位JVM的Java对象头详解
关注"Java艺术"一起来充电吧! 我们编写一个Java类,编译后会生成.class文件,当类加载器将class文件加载到jvm时,会生成一个Klass类型的对象(c++),称为类 ...
- JVM - 剖析Java对象头Object Header之对象大小
文章目录 Pre 总览 对象头剖析 查看对象内存的占用情况 对象头C++源码 注释 Pre JVM - 写了这么多年代码,你知不道new对象背后的逻辑? 中大体介绍了Java中 new 对象背后的主要 ...
- 64位java_99.9%的Java程序员都说不清的问题:JVM中的对象内存布局?
点击上方石杉的架构笔记,右上选择"设为星标" 每日早8点半,精品技术文章准时送上 往期文章 BAT 面试官是如何360°无死角考察候选人的(上篇) 每秒上万并发下的Spring C ...
- java对象添加字段_99.9%的Java程序员都说不清的问题:JVM中的对象内存布局?
在 Java 程序中,我们拥有多种新建对象的方式.除了最为常见的new语句之外,我们还可以通过反射机制.Object.clone方法.反序列化以及Unsafe.allocateInstance 方法来 ...
- JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配
文章目录 前言 零.排序规范 1.happens-before原则 2.找文档位置 一.一线互联网企业关于对象面试题: (后面回答的就是这几个问题) 二.对象创建过程 三.对象在内存中的存储布局 1. ...
- 【JVM】Java对象创建的流程步骤
· 本文摘要 · 罗列Java创建对象的各种方式: · 讲解Java对象创建的流程步骤: 一.Java创建对象的各种方式 · 1. 用关键字new,老少皆知的方法:StringBuffer sb = ...
- java对象头_浅谈java对象结构 对象头 Markword
概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...
- 深入理解多线程(三)—— Java的对象头
上一篇文章中我们从HotSpot的源码入手,介绍了Java的对象模型.这一篇文章在上一篇文章的基础上再来介绍一下Java的对象头.主要介绍一下对象头的作用,结构以及他和锁的关系. Java对象模型回顾 ...
最新文章
- linux useradd
- MyEclipse在保存时总是building workspace,反应很慢
- python代码画图案-python如何绘制iPhone手机图案?(代码示例)
- nginx常用代理配置
- 【C++】静态成员 static
- 汇编怎么输入_一位过来人的嵌入式汇编语言学习经验
- 使您的Java代码闻起来很新鲜
- 干掉勒索病毒的22岁程序员自曝黑历史:中学是电脑白痴
- android handler1--消息队列概念
- Android FrameWork——Activity启动过程详解
- 聊聊浏览器(webkit)资源加载机制
- android电视开发远程开关机,一种电视电脑一体机及其实现远程开关机控制的方法...
- fiddler4苹果手机证书无法使用的问题解决方案
- 如何计算信号的信噪比
- 论文《Reasoning With Neural Tensor Networks for Knowledge Base Completion》的学习笔记
- Android 优秀的开源库
- 政务微信门户建设思考
- 什么是域,域树,深林?
- 高德打车通用可编排订单状态机引擎设计
- uploadFile+nginx实现上传图片(Windows/Linux均可用)