https://www.bilibili.com/video/BV1yv411N7J1?p=13
1、对象 在内存中的村粗布局?
对象与数组的存储不同。
5、DCL要不要加volatile问题
指令重排。
DCL是一种编程模型,用的特别多。。。
https://www.bilibili.com/video/BV1yv411N7J1?p=15 在32分钟左右。
总结:
- 保证线程的可见性
- 禁止指令的重排序。【具体是怎么禁止的,这又得知道内存屏障了】
2、对象头具体包括什么?
markword,klasspointer,synchronized锁信息。
其中markword中包含锁信息,gc信息,和hashcode。
3、对象怎么定位?
4、对象怎么分配?
栈上-线程本地-Eden-Old
5、Object o= new Object()在内存中占用多少字节?
答:16字节。
6、
程序是真的按照“顺序”来执行的吗?
- 为了提高执行效率,CPU指令可能会乱序执行。
- 乱序执行不得影响单线程的最终一致性
as-if-serial:单线程程序看 上去像序列化执行的。
- 乱序在多线程的情况下可能会产生难于察觉的错误。
7、Class对象是在堆还是在方法区?