CMS 三色标记法

为什么引入三色标记法

为了提供 JVM 垃圾回收的性能,从 CMS 垃圾收集器开始,引入了并发标记的概念(此处的并发标记是指与用户线程一起工作)。引入并发标记的过程就会带来一个问题,在业务执行的过程中,会对现有的引用关系链出现改变。具体如下图:

image-20210626215542908

阅读更多

Big-Edian 存储和 Little-Edian 存储

在 JVM 虚拟机规范中有对 class 字节内容的顺序的一句话,多字节数据项总是按照 Big-Endian 的顺序进行存储,刚开始不太明白,只是根据规范解析了一下,具体的java 代码:

1
2
3
4
5
6
7
8
9
10
11
12
13

public ClassReadCursor(String filePath, ClassParseInfo classParseInfo) {
try {
this.classParseInfo = classParseInfo;
byte[] bytes = Files.readAllBytes(Paths.get(filePath));
ByteBuffer byteBuffer = ByteBuffer.wrap(bytes).order(ByteOrder.BIG_ENDIAN);
this.dataInputStream = new DataInputStream(new ByteArrayInputStream(byteBuffer.array()));
} catch (IOException e) {
e.printStackTrace();
}

}

阅读更多
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×