一、内存布局:

一个java对象在内存中可分为3个区域:对象头(Header)、实例数据(Instance Data)、对齐填充(Padding)。

  1. 对象头(两部分):

    1. 对象自身运行时的数据。如哈希码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。
    2. 类型指针。即对象指向它的类元数据的指针,虚拟机通过这个指针确定这个对象是哪个类的实例。对象的访问定位就是通过这个来确认的,如后面的图片所示。
  2. 实例数据:真正的有效数据。
  3. 对齐填充:没有特殊含义,启占位符的作用。HotSpot VM的自动内存管理系统要求,对象大小必须是8字节的整数倍,也就是64位的整数倍。

二、对象的访问定位:

三、思考:

搞技术的,学习技术的使用只是最浅的一层也是最容易变化的,最重要的是设计的思想,也是较少变化的。比如java对象的内存布局,和http的请求就很类似,也是增加header部分,把数据运转时的状态和数据本身拆分开来。更深一层的来说,就是职责更加明确,类似的如面向对象设计的原则之一——单一职责,体现的也就是高内聚低耦合的思想,也就是小而美而不要大而全。(PS:你咋不说上升到哲学高度,万事万物道理相同呢。。。哈哈。。)

jvm学习笔记(2)——java对象的内存布局相关推荐

  1. 《深入理解java虚拟机》读书笔记:Java对象的内存布局

    一个int类型4占4个字节的内存,一个byte一个字节.但是他们的封装类型Integer,Byte对象内存损耗还是一样的吗?并不是,而且差距十分大. HotSpot虚拟机中,一个普通的Java对象由3 ...

  2. 学习笔记【Java 虚拟机④】内存模型

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 总目录 学习笔记[Java 虚拟机①]内存结构 学习笔记[Java 虚拟机②]垃圾回收 学习笔记[Java ...

  3. 实探java对象的内存布局

    实探java对象的内存布局 在我深入学习synchronized的时候,我查了很多资料,发现synchronized锁住的是对象的对象头,然后我又了解什么是对象头,这块的资料就很多了. 总结一下就是: ...

  4. java对象的内存布局

    java对象内存布局简介 java对象的内存布局包含对象头.实例数据.对齐填充 对象头 markword:对象默认的hash码.分代年龄,锁的状态标识等. class point:指向对象对应的类的元 ...

  5. java对象实例化内存布局与访问定位

    文章目录 1. 对象实例化方式 2. 对象创建的步骤 3. 对象的内存布局 4. 对象的访问定位 1. 对象实例化方式 通过new的方式,例如 Persion p = new Persion() 通过 ...

  6. JVM学习笔记:Java运行时数据区域

    JVM执行Java程序的过程中,会使用到各种数据区域,这些区域有各自的用途.创建和销毁时间.根据<Java虚拟机规范>,JVM包括下列几个运行时数据区域,如下图所示: 其中红色部分是线程私 ...

  7. 【学习笔记】类对象的内存释放

    类对象的内存释放 整理转自-<SAP ABAP 面向对象程序设计(原则.模式及实践)> 类对象与其他数据变量一样,都是要占据程序内存的,如果确定后续程序不会再使用对象实例,我们就可以删除对 ...

  8. 学习笔记【Java 虚拟机②】垃圾回收

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 总目录 学习笔记[Java 虚拟机①]内存结构 学习笔记[Java 虚拟机②]垃圾回收 学习笔记[Java ...

  9. 【Java】Java 如何查看对象的内存布局

    1.概述 在一些博客中说java的内存布局是分为3个部分的,那么我们怎么确认这个呢?或者如何打印java 对象的内存布局呢? 下面介绍可以使用这个类 首先引入这个包 <dependency> ...

最新文章

  1. 深入研究敏捷的成功因素
  2. 科大星云诗社动态20210327
  3. java knn kd树_KNN算法之KD树(K-dimension Tree)实现 K近邻查询
  4. python中MySQLdb的使用
  5. 选择结构_穿透的switch语句
  6. “能用”距离“好用”有多远?
  7. tp框架 db::name_玩! 框架:为什么我会爱上它
  8. 【图像处理基础知识】python+opencv显示中文
  9. 场景:如果一个select下拉框的值被选中,其他两个字段值的校验也生效
  10. Atitit s2018.2 s2 doc list on home ntpc.docx  \Atiitt uke制度体系 法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字
  11. 记录一次重装win10系统的流程
  12. java p2p 聊天_P2P--多用户在线聊天室(Java源码)
  13. 华为路由器没有虚拟服务器,华为路由器如何设置 华为路由器设置方法介绍【详解】...
  14. PostgreSQL数据库——Pigsty pg_exporter
  15. 2008年IT产业38个判断(转载)
  16. win10 更改中文用户名为英文
  17. 图的遍历 --- 广度优先搜索【借助队列实现】 + 深度优先搜索【借助递归栈】
  18. Arduino 用4位共阴数码管造一个计数器
  19. android 8华为屏幕录制,数码知识:华为nova8pro如何屏幕录制怎么录屏
  20. iOS9.3.5越狱图文教程

热门文章

  1. box2dweb 学习笔记--sample讲解
  2. AIOps中异常检测的简单应用
  3. ShardingSphere(三) 水平分库配置搭建,实现写入读取
  4. Jquery append 方法在ie8不兼容问题
  5. php 越权 漏洞,PHPYUN最新版多处SQL注入及越权操作二
  6. java获取当前日期时间_Java日期时间API系列10-----Jdk8中的DateTimeFormatter
  7. JavaFX布局中图片在表格中无法被自适应缩小?
  8. Hadoop入门基础教程 Hadoop之单词计数
  9. 【MyBatis框架】Mybatis开发dao方法第二部分
  10. DDD(领域驱动设计)示例目录结构