JAVA对象 到底是什么?

JAVA对象到底是什么?

文章目录

1.前言
2.JAVA对象组成说明
3.对象头的具体组成结构


1.前言

我们用JAVA来编写程序,经常创建对象,那么JAVA中的对象到底是什么?、有哪些东西组成?、分别有什么作用?相信大多数JavaEr可能会有这个疑问。

2.JAVA对象组成说明

2.1 JAVA 对象包括:
  • 1 对象头
  • 2 对象的实例数据
  • 3 对齐补充

3.对象头的组成结构

3.1 对象头的描述

OpenJDK官方文档对于对象头(object header)的描述:
每个 GC 管理的堆对象开头的通用结构。 (每个 oop 都指向一个对象头。)包括有关堆对象布局、类型、GC 状态、同步状态和身份哈希码的基本信息。 由两个词组成。 在数组中,紧随其后的是一个长度字段。 请注意,Java 对象和 VM 内部对象都具有共同的对象头格式。
OpenJDK官方文档术语表地址:[http://openjdk.java.net/groups/hotspot/docs/HotSpotGlossary.html](http://openjdk.java.net/groups/hotspot/docs/HotSpotGlossary.html)

  • 英文说明:

Common structure at the beginning of every GC-managed heap object. (Every oop points to an object header.) Includes fundamental information about the heap object’s layout, type, GC state, synchronization state, and identity hash code. Consists of two words. In arrays it is immediately followed by a length field. Note that both Java objects and VM-internal objects have a common object header format.

  • 通俗易懂的说就是:

每一个GC管理的堆对象的普通架构,(每一个oop指针指向的对象头)包括堆对象的布局的基本信息,类型,GC状态,syn锁状态和hash code,由2个words组成,如果是数组则会跟着数组的长度字段,java对象和VM内部对象有着相同的头格式。

3.2 words说明

在上文提到了words,那么words是什么呢?

第一个words:

每个对象头的第一个word通常是一些列的 位字段,包括 锁状态、hash code,也可能是指向 synchronization相关的信息的指针,在GC过程中,也会包含GC状态位

  • 英文说明:

一个word为:- mark word
The first word of every object header. Usually a set of bitfields including synchronization state and identity hash code. May also be a pointer (with characteristic low bit encoding) to synchronization related information. During GC, may contain GC state bits.

第二个words:

每个对象的第二个word为一个指针,指向对象关联的类信息

  • 英文说明

第二个word为- klass pointer
  The second word of every object header. Points to another object (a metaobject) which describes the layout and behavior of the original object. For Java objects, the “klass” contains a C++ style “vtable”.

3.3 对象头具体组成结构
3.4引用文档地址
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值