hotspot 与 openJDK 是 JVM 的具体实现,JVM 相当于一种规范。
    new 一个对象
    申请内存——初始化默认值——构造方法,设置值——建立关联
    class T{
    int m = 8;
    }
    T t = new T();

    汇编代码
    new #2 申请内存
    dup 复制一份
    invokespecial #3 > 调用构造方法,初始化为8
    astore_1 将t与内存中的T对象建立关联
    return
    对象在内存中的存储布局
    普通对象 new XX()
    markword 标记字,class pointer 类型指针,instance data 实例对象,padding 对齐
    其中 markword 和 class point 一起称为对象头
    如果前三个一个没有满足 8 个字节,用 padding 补齐
    数组
    int[] a = new int[4]
    T[] a = new T[5]
    markword,class poniter,length(数组长度 4 字节) ,instance data 实例对象,padding
    对象头主要包括的就是锁的信息,现在的 synchronized 是一个锁升级的过程
    先上偏向锁,自旋锁(无锁,轻量级锁),重量级锁,
    偏向锁:坑上贴个名片,如果你来就可以直接进入
    当发生竞争时,使用 CAS 算法往坑上贴名片。
    对象是怎么定位的?
    句柄方式,直接指针
    七、HotSpot - 图1
    转载 https://www.yuque.com/jykss/jykss/qaomdf