https://www.bilibili.com/video/BV1yv411N7J1?p=13

    image.png

    1、对象 在内存中的村粗布局?
    对象与数组的存储不同。
    5、DCL要不要加volatile问题
    指令重排。
    DCL是一种编程模型,用的特别多。。。
    image.png
    https://www.bilibili.com/video/BV1yv411N7J1?p=15 在32分钟左右。

    image.png
    总结:

    • 保证线程的可见性
    • 禁止指令的重排序。【具体是怎么禁止的,这又得知道内存屏障了】

    2、对象头具体包括什么?
    markword,klasspointer,synchronized锁信息。
    其中markword中包含锁信息,gc信息,和hashcode。
    3、对象怎么定位?
    4、对象怎么分配?
    image.png

    栈上-线程本地-Eden-Old
    5、Object o= new Object()在内存中占用多少字节?
    答:16字节。
    6、
    程序是真的按照“顺序”来执行的吗?

    • 为了提高执行效率,CPU指令可能会乱序执行。
    • 乱序执行不得影响单线程的最终一致性

    as-if-serial:单线程程序看 上去像序列化执行的。

    • 乱序在多线程的情况下可能会产生难于察觉的错误。

    7、Class对象是在堆还是在方法区?