2016 - 2024

感恩一路有你

jvm的堆分为哪几部分 JVM堆内存中,为何有两个survivor区,一个不行吗?

浏览量:2539 时间:2021-03-14 09:52:29 作者:admin

JVM堆内存中,为何有两个survivor区,一个不行吗?

年轻一代使用复制算法。每次执行小GC时,伊甸园区域中幸存的物体都会被复制到幸存区域,幸存的物体会被移到老年。如果只有一个幸存者区域,它将产生垃圾碎片。

让我们看看只有一个s区域的情况

如果有两个区域,一个S1和一个S2,将S1和Eden区域的幸存对象复制到S2,并将S2和Eden区域的幸存对象复制到S1

下次触发时堆:

1。存储所有对象,每个对象都包含相应的类信息。(该类的目的是获取操作说明)

2。JVM中的所有线程只共享一个堆。堆不存储基本类型和对象引用,只存储对象本身的堆栈:1。每个线程都包含一个堆栈,它只存储基本数据类型和自定义对象的引用(而不是对象),对象存储在heap 2中。每个堆栈中的数据(原始类型和对象引用)都是私有的,其他堆栈无法访问它。

3. 堆栈分为三个部分:基本类型变量区、执行环境上下文和操作指令区。方法区:1。它也被称为静态区域。和堆一样,它也被所有线程共享。方法区域包含所有类和静态变量。2方法区域包含在整个程序中总是唯一的元素,例如类和静态变量。

jvm的堆分为哪几部分 java对象在jvm中的存储 jvm对象创建过程

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。