技术文章 > java >  java基础 > 正文

对象头在java中的结构有哪几种

小妮浅浅

对象头在处理锁时,需要其中的两个结构共同作用才能实现,分别是Mark Word和Klass Pointer。前者把锁的数据进行存储,后者用来对类实例进行筛选。接下来我们就对象头这两种结构,分别进行概念的讲解,帮助大家更好的理解java对象头发挥作用的原理。

1.两种类型

普通对象包含:Mark Word、元数据指针(Klass Pointer)

数组对象包含:Mark Word、元数据指针(Klass Pointer)、Array Length

2.Mard Word

Mark Word用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等等,占用内存大小与虚拟机位长一致。

3.Klass Word

类型指针指向对象所属类(元数据)的指针,JVM通过这个确定这个对象属于哪个类。

压缩指针:开启指针压缩使用算法开销带来内存节约,Java 对象都是以 8 字节对齐的,也就是以 8 字节为内存访问的基本单元,那么在地理处理上,就有 3 个位是空闲的,这 3 个位可以用来虚拟,利用 32 位的地址指针原本最多只能寻址 4GB,但是加上 3 个位的 8 种内部运算,就可以变化出 32GB 的寻址。

以上就是对象头在java中的结构,可以看出在处理锁的问题上,Mark Word和Klass Pointer分别发挥它们的作用。同时在数组时的对象头组成有略微差别,这里需要大家使用时注意下。

免费视频教程
本文原创发布python学习网,转载请注明出处,感谢您的尊重!
相关文章
 java synchronized锁的状态
 synchronized在java中的原理分析
 java Synchronized特性有哪几个
 synchronized在java的优缺点
 synchronized在java中的优化方法
 java中对象头的用法
相关视频章节
 网络爬虫
 云端部署Web应用程序视频
 Web应用框架Flask和文件模板
 Web应用程序开发概述
 继承和多态
作者信息

小妮浅浅

认证0级讲师

最近文章
java编译命令是什么522
java的jdk是什么411
java Wrapper类的使用812
推荐视频
视频教程分类