堆 属于 线程共有的
内容 作为我们程序员最关系的部分:堆,也是占用JVM内存最大的一块。主要用来存放对象实例、数组等,也是GC发生最多的地方。java堆可以处在物理上不连续的内存空间,只要逻辑上是连续的即可。 具体来说堆分为2大部分:年轻代、年老代。而年轻代又分为:Eden空间、From Survivor空间、To Survivor空间
错误及样例 没错常见的错误就是java.lang.OutOfMemoryError: Java heap space
/**
* 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(堆内存)最大允许的尺寸,按需分配。 一般会设置这两个值相等,防止其动态扩展