美文网首页
JVM-005-关于对象的二三事

JVM-005-关于对象的二三事

作者: Docker_Compose | 来源:发表于2020-11-14 00:17 被阅读0次

对象的创建过程

  1. class loading
  2. class linking
  • verification:校验class文件是否符合JVM规范;
  • preparation:将静态的成员变量赋默认值;
  • resolution:将类、方法、属性等符号引用解析为直接引用;常量池中的各种符号引用解析为指针、偏移量等内存地址的直接引用。
  1. initializing:将静态成员变量赋初始值。
  2. 申请内存
  3. 成员变量赋默认值
  4. 调用构造方法<init>
  • 成员变量顺序赋初始值
  • 执行构造方法语句




数对象在内存的存储布局

  new了之后,对象在内存的存储布局是怎样的呢?普通对象与数组对象在内存中的存储布局有稍稍不同。
  简单来说,数组对象比普通对象多了数组长度这一项。

普通对象

  1. 对象头 markwork :8byte
  2. ClassPointer指针:默认 8 byte;使用 -XX:+UseCompressedClassPointers,则4 byte
  3. 实例数据
  • 引用类型:默认 8 byte;使用-XX:+UseCompressedOops,则4字节
  • Oops:Ordinary Object Pointers
  1. padding对齐 :字节大小为8的倍数



数组对象

  1. 对象头 markwork :8byte
  2. ClassPointer指针:默认 8 byte;使用 -XX:+UseCompressedClassPointers,则4 byte
  3. 数组长度
  4. 数组数据
  5. padding对齐:字节大小为8的倍数




对象头包括什么

  对象头,即markwork。那么这markwork里有什么呢?markwork里中记录了锁以及GC的信息。

markwork的具体信息

markwork.png

关于hashcode的冷门小知识

  hashcode有两种情况,一种是重写了hashcode,return了一个固定值,另一种则是hashcode根据存储布局的大小来计算。
  如果对象已经计算了hashcode的值,变成IdentityHashCode后,是无法变成偏向锁




对象如何定位

  对象的定位方式有两种,一种是句柄池,另一种则是直接指针。
  对象的定位方式需要看JVM的具体实现。目前,在Hotspot中,对象的定位方式是直接指针。
  句柄池和直接指针有什么区别?句柄池比直接指针定位要快,但是直接指针有利于GC的回收。




一些不怎么重要的小知识

  1. java8大原子操作:虚拟机规范,已废弃
  2. happen-before:虚拟机规范
  3. as if serial:不管指令如何重排序,单线程的结果是不会变的
  4. 观察虚拟机的配置:java -XX:+PrintCommandLineFlags -version

相关文章

  • JVM-005-关于对象的二三事

    对象的创建过程 class loading class linking verification:校验class文...

  • 关于NSArray的二三事

    关于NSArray的二三事

  • 关于String需要知道的二三事

    关于String需要知道的二三事 标签: Java基础 原文链接:关于String需要知道的二三事 转载请注明...

  • 与对象的二三事

    我:破镜可以重圆吗? 对象:不可以! 我:那泼出去的水还可以收回来吗? 对象:绝不可以! 我:懂了。 对象:你到底...

  • 关于,二三事

    备忘一 16. 12 .末 真的已经很久不码字 平时想要说的想要写的,断断续续的存在了备忘录里和记事本里 专门想要...

  • 关于this的二三事

    什么是this this是JS中一个非常重要的关键字。this 就是你 call 一个函数时,传入的 contex...

  • 关于绳的二三事

    对着茶杯发呆的我坐在候车室(发呆仅仅是我用来超然的一种方法,若身边有趣事我也不愿发呆:这并不是没有青春活力的体现!...

  • 关于早茶的二三事

    大年初八约了大学同学去吴忠吃早茶,与其说吃不如说是体验。与年华已逝,铅华历尽,多少有些分裂经历的中年女人一起,这...

  • 关于咖啡的二三事

    正经来说,我是一个对咖啡感兴趣的人,而不是热爱咖啡的人。这两者之间有一个最大的不同之处:一个喜欢喝咖啡,一个对咖啡...

  • 关于廊坊的二三事

    周六周日我们去了廊坊,去学习了米老师的小组经验,收获颇丰, 首先,他们极其注重学习方法的学习。他们甚至专门在刚开始...

网友评论

      本文标题:JVM-005-关于对象的二三事

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