JVM对象、内存布局

作者: 大玩具 | 来源:发表于2020-03-03 22:28 被阅读0次

对象创建

1.虚拟机遇到一个new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用
2.检查这个符号引用代表的类是否已经被加载,解析和初始化过。如果没有,那必 须先执行响应的类加载过程
3.在类加载检查功通过后,为新生对象分配内存。对象所需的内存大小在类加载完 成后便可完全确定。

对象内存布局

对象头,实例数据,对齐填充

  1. 对象头分为两部分,一部分用来记录对象自身的运行时数据,如在GC中的分代年龄、哈希码、持有的锁等等;另一部分是类型指针,用来记录引用,是谁指向了我?JVM通过这个来确定谁引用了对象。(是不是跟GC Root有关呢?没有研究过)
  2. 实例数据是对象真正存储的有效信息,也是在程序代码中所定义的各种类型的字段内容。
  3. 对齐填充不是必然存在的。有的虚拟机要求对象大小必须是8字节的整数倍。
    怎么理解呢,就当是你玩游戏时候选择的一个英雄吧,头信息一个是他的等级,另一个就是谁操控了他,实例数据就是他的人头数,装备等等,因为这些是你靠本事拿来的。

相关文章

  • JVM-对象内存布局

    jvm-对象内存布局 对象内存结构概述 对象的创建过程: jvm将对象所在的class文件加载到方法区中 jvm读...

  • JVM-JMM

    JMM(jvm内存模型) by shihang.mai 对象的内存布局 对象的创建过程class loading-...

  • JVM对象、内存布局

    对象创建 1.虚拟机遇到一个new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用2.检查...

  • 对象的结构

    对象内存布局(结构) 对象头 1.对象头形式 JVM中对象头的方式有以下两种(以32位JVM为例): 1.1.普通...

  • Synchronized原理

    1、认识JAVA对象的组成结构 对象的内存结构:在JVM中,对象在内存中的布局分为三块区域:对象头、实例数据和对齐...

  • JVM读书笔记

    深入理解JVM(1) : Java内存区域划分 深入理解JVM(2) : Java堆中对象创建、布局、访问全过程 ...

  • Java虚拟机OOM

    内存溢出异常 OOM 我们知道: JVM的内存模型 对象的创建和布局 开始面对最终Boss: OOM 我们的目标:...

  • JVM(八):Java 对象模型

    JVM(八):Java 对象模型 本文将学习对象是如何创建的,对象的内存布局,以及如何定位访问一个对象。 对象创建...

  • JVM中对象的内存布局详解

    JVM(三)JVM中对象的内存布局详解 2018年01月19日 23:21:47 B8613A 阅读数:513更多...

  • Android JVM02 --- 运行时数据区(堆区) - 草

    对象分配过程+对象创建过程+对象内存布局。 一.堆概述 1.一个JVM进程存在一个堆内存。 2.java堆区在JV...

网友评论

    本文标题:JVM对象、内存布局

    本文链接:https://www.haomeiwen.com/subject/tzzllhtx.html