JVM怎么保存Java对象

本文详细探讨了JVM中Java对象的存储方式,包括对象头、实例数据和压缩OOPs技术,以及HotSpot JVM的内存结构变化。通过对对象在堆和方法区的布局以及OOP的压缩,解释了如何在64位JVM上有效管理内存,以提高性能。
摘要由CSDN通过智能技术生成

本文主要讲解一下在 JVM 中如何保存 Java 对象以及 Java 对象指针压缩相关的东西

JVM 体系结构

        JVM 规范中定义的体系结构(这个只是定义的规范,实际的 JVM 实现中可能与这个结构会有差异)

        堆和方法区是所有类共享的,其中堆主要存储对象实体,方法区存储的信息比较多,主要包括下面几类:

类的基本类型信息

  • 类型的全限定名

  • 直接超类的全限定名(除了 Object)

  • 是类还是接口

  • 访问修饰符

该类的常量池

  • 虚拟机会为每个转载的类型维护一个常量池

字段信息

  • 字段名称

  • 字段类型

  • 字段修饰符(public,private,protected,static,final,volatile,transient)

方法信息

  • 方法名

  • 方法的返回值类型或者void

  • 方法的参数数量和类型(按照声明顺序)

  • 方法的修饰符(public,private,protected,static,final,synchronized,natvie,abstract)

  • 如果不是abstract和native方法,还会保存下面的信息

  • 方法的字节码

  • 操作数栈和局部变量区的大小

  • 异常表

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值