jvm内存设置多少合理 JVM堆内存中,为何有两个survivor区,一个不行吗?
浏览量:3015
时间:2021-03-10 20:31:40
作者:admin
JVM堆内存中,为何有两个survivor区,一个不行吗?
年轻一代使用复制算法。每次执行小GC时,伊甸园区域中幸存的物体都会被复制到幸存区域,幸存的物体会被移到老年。如果只有一个幸存者区域,它将产生垃圾碎片。
让我们看看只有一个s区域的情况
如果有两个区域,一个S1和一个S2,将S1和Eden区域的幸存对象复制到S2,并将S2和Eden区域的幸存对象复制到S1
下次触发时堆:
1。存储所有对象,每个对象都包含相应的类信息。(该类的目的是获取操作说明)
2。JVM中的所有线程只共享一个堆。堆不存储基本类型和对象引用,只存储对象本身的堆栈:1。每个线程都包含一个堆栈,它只存储基本数据类型和自定义对象的引用(而不是对象),对象存储在heap 2中。每个堆栈中的数据(原始类型和对象引用)都是私有的,其他堆栈无法访问它。
3. 堆栈分为三个部分:基本类型变量区、执行环境上下文和操作指令区。方法区:1。它也被称为静态区域。和堆一样,它也被所有线程共享。方法区域包含所有类和静态变量。2方法区域包含在整个程序中总是唯一的元素,例如类和静态变量。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。