当前位置: 首页 > news >正文

旺旺号查询网站怎么做能打开任何网站浏览器

旺旺号查询网站怎么做,能打开任何网站浏览器,班级做网站人的叫什么,phpwind的代表网站文章目录 面试题Object object new Object() 谈谈你对这句话的理解? 对象在堆内存中存储布局权威定义(周志明老师JVM第三版)对象在堆内存中的存储布局详解对象头的MarkWord源码对象标记源码 对象内存布局(使用JOL证明&#xff09…

文章目录

  • 面试题
    • Object object = new Object() 谈谈你对这句话的理解?
  • 对象在堆内存中存储布局
    • 权威定义(周志明老师JVM第三版)
    • 对象在堆内存中的存储布局
      • 详解对象头的MarkWord
      • 源码
        • 对象标记源码
  • 对象内存布局(使用JOL证明)
    • 依赖
    • 只有对象头对象的内存布局信息
      • 运行结果展示
      • 压缩指针
    • 有实例数据的对象的内存布局信息
  • 文章说明

面试题

  • 对象头存储那些信息?长度是多少位存储?

Object object = new Object() 谈谈你对这句话的理解?

  • 位置所在:JVM堆->新生区->伊甸园区

在这里插入图片描述

在这里插入图片描述

  • 对象的构成要素?构成布局:对象头+实例数据+对齐填充

对象在堆内存中存储布局

权威定义(周志明老师JVM第三版)

在HotSpot虚拟机里,对象在堆内存的存储布局可以划分为三个部分:对象头(Header)、实例数据(Instance Data) 和对齐填充(Padding)。

在这里插入图片描述

对象在堆内存中的存储布局

在这里插入图片描述

在这里插入图片描述

  • **对象头:**在64位系统中,Mark Word占了8个字节,类型指针占了8个字节(开启压缩指针的话,有时候会压缩到4个字节),一共是16个字节)

    • 对象标记(Mark Word)
      • 下面详解
    • 类元信息(klassOop类型指针)
      • 类元信息存储指向该对象类元数据(klass)的地址,虚拟机通过这个指针来确定这个对象哪个类的实例
  • 实例数据

    • 存放类的属性(Field)数据信息,包括父类的属性信息
      在这里插入图片描述
  • 对齐填充(保证8个字节的倍数)

    • 虚拟机要求对象起始地址必须是8字节的整数倍,填充数据不是必须存在的,仅仅是为了字节对齐,这部分内存按8字节补充对齐。
    • 例如有一个对象内存是21个字节,会填充到24个字节

详解对象头的MarkWord

先思考如下问题:

  • new一个时象,占内存多少?
  • 对象名.hashcode():这个hashcode记录在对象的什么地方?
  • synchronized(o):怎么知道锁了多少次?
  • system.gc():手动收集垃圾,15次可以从新生代->老年代,哪里记录了分代年龄?

上述信息都存储在MarkWord中。默认存诸对象的HashCode、分代年龄和锁标志位等信息。这些信息都是与对象自身定义无关的数据,所以MarkWord被设计成一个非固定的数据结构以便在极小的空间内存存储尽量多的数据。它会根据对象的状态复用自己的存储空间,也就是说在运行期间MarkWord里存储的数据会随着锁标志位的变化而变化

在这里插入图片描述

通过看标志位,就能获取存储内容的状态

在这里插入图片描述

32位虚拟机,不用深入学习,了解即可,现在都有64位

在这里插入图片描述

在64位虚拟机中,Mark Word占了8个字节(64bit),类型指针占了8个字节,一共是16个字节。new一个最简单的Object,没有实例数据这些,这个对象就是16字节。

在这里插入图片描述

  • 分代年龄的存储空间是4bit,最多只能存储到15,到达15,对象就需要从新生代晋升到老年代

尝试强制设置为16

在这里插入图片描述

代码运行就会报错

在这里插入图片描述

源码

_mark字段是mark word,_metadata是类指针klass pointer,对象头(object header)即是由这两个字段组成

在这里插入图片描述

对象标记源码
  • hash: 保存对象的哈希码
  • age:保存对象的分代年龄
  • biased_lock:偏向锁标识位
  • lock:锁状态标识位
  • JavaThread*:保存持有偏向锁的线程ID
  • epoch:保存偏向时间戳

在这里插入图片描述

对象内存布局(使用JOL证明)

JOL官网:https://openjdk.org/projects/code-tools/jol/

JOL = Java Object Layout。JOL(Java对象布局)是一个小型工具箱,用于分析JVM中的对象布局方案。这些工具大量使用Unsafe、JVMTI和服务性代理(SA),以解码实际的对象布局、占用空间和引用。这使得JOL比其他依赖于堆转储、规范假设等的工具更准确。(注:Unsafe、JVMTI和Serviceability Agent(SA)都是Java中的一些技术或工具。)

依赖

<dependency><groupId>org.openjdk.jol</groupId><artifactId>jol-core</artifactId><version>0.9</version>
</dependency>

System.out.println(VM.current().details());打印当前虚拟机的信息

在这里插入图片描述

只有对象头对象的内存布局信息

运行结果展示

Object只有对象头,没有任何实例数据

在这里插入图片描述

在这里插入图片描述

没有属性的自定义类默认也是16字节

在这里插入图片描述

压缩指针

  • Java -XX:+PrintCommandLineFlags -version 查看当前虚拟机信息
  • 默认开启压缩指针(+表示开启),开启后将上述类型指针压缩为4字节,以节约空间
    在这里插入图片描述
  • 手动关闭压缩指针: -XX: -UseCompressedClassPointers(-表示关闭)
    在这里插入图片描述

【总结】

1、默认配置,启动了压缩指针,-XX:+UseCompressedClassPointers,12 + 4(对齐填充) = 一个对象16字节 2、手动配置,关闭了压缩指针,-XX:-UseCompressedClassPointers,8 + 8 = 一个对象16字节

有实例数据的对象的内存布局信息

public class JOLDemo {public static void main(String[] args) {Object o = new Object();//16 bytesCustomer c1 = new Customer();//16 bytesSystem.out.println(ClassLayout.parseInstance(c1).toPrintable());}
}class Customer//16字节(忽略压缩指针的影响)+4字节+1字节=21字节----》对其填充,24字节
{//2 第二种情况,int + boolean,默认满足对其填充,24 bytesint id;boolean flag = false;boolean flag2 = false;
}

在这里插入图片描述

文章说明

该文章是本人学习 尚硅谷 的学习笔记,文章中大部分内容来源于 尚硅谷 的视频尚硅谷JUC并发编程(对标阿里P6-P7),也有部分内容来自于自己的思考,发布文章是想帮助其他学习的人更方便地整理自己的笔记或者直接通过文章学习相关知识,如有侵权请联系删除,最后对 尚硅谷 的优质课程表示感谢。

http://www.hkea.cn/news/347580/

相关文章:

  • 免费网站模板psd网络营销的整体概念
  • 网站模板下载破解版环球军事新闻最新消息
  • 徐汇苏州网站建设东莞免费建站公司
  • 厦门网站建设哪家强深圳网站维护
  • 政府网站新媒体平台建设关键词权重查询
  • 重庆网站建设制作公司百度客服人工在线咨询电话
  • 微信公众号平台入口官网奶盘seo伪原创工具
  • 泉州网站建设公司推荐宁德市地图
  • 大厂县住房和城乡建设局网站刷百度指数
  • 低代码开发平台优缺点昆山seo网站优化软件
  • 网站开发年终总结网络营销战略的内容
  • 建立门户网站的意义营销推广网
  • 网站建设网站软件有哪些百度推广开户费用标准
  • 找家装修公司家装吉林seo外包
  • 保定医疗网站建设公司会计培训班初级费用
  • 最好的销售管理系统seo发帖网站
  • 德州乐陵德州seo公司seo批量建站
  • 贵州省建设监理协会官方网站seo代运营
  • 北京哪家做网站优化账号权重查询
  • 大唐网站建设培训管理平台
  • 男人和女人在床上做那个网站网络营销策划推广公司
  • 深圳市招投标交易中心天津谷歌优化
  • 厦门园网站忱建设百度推广怎么联系
  • 网站优化页面动态网站建设
  • 做网站域名公司每日重大军事新闻
  • 网站改版数据来源表改怎么做外链百科
  • wordpress怎样做单页网站谷歌查询关键词的工具叫什么
  • 县城做二手车网站自己建网站需要多少钱
  • 有没有专业做挂的网站引流推广方案
  • 购物网站开发文献综述百度收录需要多久