如何保障有序性
硬件如何保障:

乱序问题

如何保证特定的情况下不乱序
硬件的有序性保障
X86

Java的汇编指令

JVM的如何规范







前三步是Class对象没有load到内存才需要进行的过程,从第四步开始是new 的过程

2. 对象在内存的布局
ClassPionter指针表示实例对象指向他的Class对象的地址


对象的大小


使用:Agent:

object:16字节,对象头8字节,(默认压缩的)classpointer4字节,padding对齐四字节
数组:16字节,对象头8字节,(默认压缩的)classpointer4字节,数组长度四字节
classpointer不压缩是8字节
p对象:是32字节

我们注意他的name属性:为四字节,但是他其实是8字节的,四字节的原因是因为这个参数:-XX:+UseCompressedOops 是开启的,把普通对象引用压缩成四字节
Oops:普通对象引用
classPointer:Class对象的引用

3. 对象头具体包括什么

对象头有两位标志对象有没有被锁定,一位标志被哪个线程占有,即偏向锁,还有两位是GC位,标志被垃圾回收器回收了几次
下面的图是32位的


因为分代年龄只有四位表示

4. 对象怎么定位
句柄池(在垃圾回收算法中效率更高):通过一个间接指针(有两个,一个指向真正的对象,一个指向class对象)

(hotspot的实现,可以直接找到对象,找对象效率更高)直接指针:就是指针指向对象,然后这个对象指向了这个对象的class对象
- 对象怎么分配(GC相关)










