推荐 最新
米斯达

关于《深入理解java虚拟机》阅读时候的问题?

第一个问题是关于三色标记的问题。 jvm 的 原始快照,如果一个黑色对象关联到一个新的白色对象。这个对象并不是从灰色对象逃脱的。不是也一样会产生对象消失吗?为什么说必须满足两个条件才会出现对象消失的问题。这样一样会导致不该被回收的标记为白色。 第二个是关于卡表和记忆集的问题。 卡表中变脏的卡页会加入GC Root ,是将整个卡页的对象加入GC Root 还是通过某种方式,筛选出卡页中有跨代引用的对象加入GC Root, 如果还要筛选,依据是什么呢?如果不筛选,这样是否会产生浮动垃圾? 第三个是关于写屏障解决伪共享的问题,为什么多一个判断就能解决伪共享的问题?

0
1
0
浏览量186
正确计算方式

官方介绍JVM的文档有吗?

比如说老年代,青年代,永久代,伊甸区,还有垃圾回收的策略,JVM内存结构等等,我不要第三方的资料,我要官方的资料,请问哪里有?

0
1
0
浏览量207
Frank的私人司机

哪里有HotSpot JVM的文档?

java官方的JVM文档我找到了,但是没啥用,因为它只是个规范,谁知道HotSpot的相关文档,我想知道关于GC的内容,谢谢。

0
1
0
浏览量177
Midclimateeee

java double-check为啥要加volatile(是因为可见性还是有序性)?

通过百度: 1. 我知道java volatile可以保证可见性和有序性。 2. 我知道java单例实现:double-check模式需要加上volatile, 但是为什么需要加上volatile?百度好像有两种意见。 基于可见性 的考虑,参考:"https://www.bilibili.com/video/BV1gX4y1a7sH?p=11&vd_source=80..." (https://www.bilibili.com/video/BV1gX4y1a7sH?p=11&vd_source=801503831f64778f7f89c8223c80acac) 作者的意思:没有加上volatile,不同的线程间的缓存副本无法可见,导致重复多次初始化。 基于有序性 的考虑,参考:"https://blog.csdn.net/qq_44842835/article/details/132166785" (https://link.segmentfault.com/?enc=SdiGpHN2ojNGS8Oa9U7fYQ%3D%3D.AuPlZZ%2FhXC2zfEwzN6xuTUWkJWNs%2FPY2HdjAjBgUm%2FB4JgipF0ibnfPpt0CIbrtA6BGZMUuEZKlSKRJQs3Bnhg%3D%3D) 作者的意思:对象实例化可以简单分为三步:1、分配内存 2、初始化对象 3、将对象的引用赋值给instance。因为指令重排,顺序可以变成1->3->2,因此其他线程很可能获得一个未完全初始化的实例。 请问上述两种观点谁对谁错?能否能通过java代码来证明和实现?

0
1
0
浏览量21