首页
学习
活动
专区
圈层
工具
发布

JVM内存模型之堆

属于 线程共有的

内容 作为我们程序员最关系的部分:堆,也是占用JVM内存最大的一块。主要用来存放对象实例、数组等,也是GC发生最多的地方。java堆可以处在物理上不连续的内存空间,只要逻辑上是连续的即可。 具体来说堆分为2大部分:年轻代、年老代。而年轻代又分为:Eden空间、From Survivor空间、To Survivor空间

错误及样例 没错常见的错误就是java.lang.OutOfMemoryError: Java heap space

代码语言:javascript
复制
/**
 * Created by shengjk1 on 2017/8/23.
 */
//-Xmx20m  -verbose:gc -XX:+PrintGCDetails
public class TestHeap {
    public static void main(String[] args) {
        List<TestHeap> list=new ArrayList<>();
        while (true){
            list.add(new TestHeap());
        }
    }
}

常用参数 -Xms 表示JVM Heap(堆内存)最小尺寸,初始分配 -Xmx 表示JVMHeap(堆内存)最大允许的尺寸,按需分配。 一般会设置这两个值相等,防止其动态扩展

下一篇
举报
领券