如何保障有序性
硬件如何保障:
 
 乱序问题
 
如何保证特定的情况下不乱序
 硬件的有序性保障
 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相关)
  









