对象的创建:当虚拟机遇到一条new指令时,会去检查这个类是否已经被加载、解析、初始化过,如果没有,会执行类加载过程,当类加载检查通过之后会给对象分配内存,内存分配完成之后,虚拟机会对对象进行必要的设置,例如该对象是哪个类的实例、如何才能找到类的元数据信息等,这些信息存放在对象头中。之后会执行init方法,把对象按照程序员的意愿进行初始化,至此一个真正可用的对象才算完全生成出来。

对象的内存布局:对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。

对象头:对象头包括两部分信息,第一部分用于存储对象自身的运行时数据,如哈希码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等;另外一部分是类型指针,即对象指向它的类元数据的指针,虚拟机通过这个指针确定这个对象是哪个类的实例。

实例数据:实例数据是对象真正存储的有效信息,是在程序代码中所定义的各种类型的字段内容。

对齐填充:对齐填充起占位符的作用,用来保证对象的大小是8字节的整数倍。

Java虚拟机笔记-对象相关推荐

  1. Java虚拟机笔记(五):JVM中对象的分代

    为什么要分代 为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用, ...

  2. 深入学习Java虚拟机笔记

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.走进Java 1.4.2 HotSpot VM 1.4.4 BEA JRockit/IBM J9 VM 1.6.1 ...

  3. Java虚拟机笔记(一):类加载机制

    原文地址:https://www.cnblogs.com/study-everyday/p/7009294.html 一.概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解 ...

  4. java虚拟机内存分为,深入理解Java虚拟机笔记(一)----内存划分

    Java内存划分 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,如下图 一.程序计数器 程序计数器(Program Counter Register)是一块很小 ...

  5. Java虚拟机:对象创建过程与类加载机制、双亲委派模型

    一.对象的创建过程: 1.对象的创建过程: 对象的创建过程一般是从 new 指令(JVM层面)开始的,整个创建过程如下: (1)首先检查 new 指令的参数是否能在常量池中定位到一个类的符号引用: ( ...

  6. java中对象的生存期_深入理解Java虚拟机-判断对象是否存活算法与对象引用

    我们知道Java中的对象一般存放在堆中,但是总不能让这些对象一直占着内存空间,这些对象最终都会被回收并释放内存,那么我们如何判断对象已经成为垃圾呢?这篇文章会提出两种算法解决这个问题.另外,本文还要谈 ...

  7. java占位符填充_程序员:深入理解Java虚拟机,对象的内存布局

    在 HotSpot 虚拟机中,对象在内存中存储的布局分为 3 块区域:对象头 ( Header ) .实例数据 ( InstanceData ) 和对齐填充 (Padding) . 一.对象的内存布局 ...

  8. 深入理解Java虚拟机--笔记1

    Java内存区域与内存溢出异常 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存区域划分为若干个不同的数据区域. 1 程序计数器--Program Counter Regis ...

  9. 深入理解java虚拟机-笔记

    java内存区域与内存溢出异常 java虚拟机自动内存管理机制,不用像C/C++为每一个new操作去写配对delete/free代码 java虚拟机在执行java程序的过程中 会把内存划分为若干个不同 ...

最新文章

  1. 基于RDKit探索DrugBank
  2. 安全报告显示2015年DDoS攻击强度创下新纪录
  3. 用Scikit-learn和TensorFlow进行机器学习(一)
  4. python 港股交易数据_GitHub - 116pythonZS/futuquant: 富途量化平台 API
  5. js求渐升数的第100位
  6. Upload-Labs(17-20)
  7. php常用分页类,php 分页类(整理)
  8. 解析windows已从异常关机中恢复
  9. 定义返回函数指针(地址)的函数
  10. java poi无法读取word_poi,word_POI读取word内容的疑问,poi,word,java - phpStudy
  11. 基于FPGA的篮球计分器
  12. 如何保证服装ERP项目成功施行
  13. 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验
  14. 谷歌SEO考虑富媒体文件
  15. ibm邮箱连接不到服务器,IBM i 安全邮件配置和常见故障排除方法
  16. Dockerfile构建Springboot镜像
  17. Java Reflection (JAVA反射) 选择自 leek2000 的 Blog
  18. Excel VBA密码破解工具(VBA实现)
  19. 今天教你用 Python 爬取网站的指南
  20. wifi,zigbee,ble 比较分析

热门文章

  1. watermark-removal: 一款超赞的开源图片去水印解决方案
  2. 时控开关c语言程序,德力西KG316T时控开关调整和设定时间操作方法说明
  3. 宝德开开游戏云战略发布会在京瞩目召开
  4. js setTimeout 参数传递使用
  5. NVIDIA Jetson平台上TensorRT加速YOLOV3,V4及V5系列参考例程分享
  6. JVM 工作原理和即时编译(JIT)
  7. 1.Hue 中运行oozie工作流执行spark 报错 local class incompatible
  8. 2018.03.18 临汾市游记
  9. 代码注释规范之Doxygen
  10. 从底层谈webgis原理设计与实现(九)WebGIS中的矢量查询(针对AGS和GeoServer)