JVM模拟对栈溢出

堆内存溢出:

1)先设置一下堆内存大小,我这里设置为2M

2)看代码:

public class HeapOverflow {
    static List<Person> list = new ArrayList<>();

    public static void main(String[] args)throws Exception {
        while (true) {
//          Person person = Person.getInstance(); 这个是单例的,单例是不会有内存溢出的,因为在JVM堆内存中相同对象永远只有一个内存地址,也就是说只会分配一次内存
            Person person = new Person();
            list.add(person);
            Thread.sleep(1);
        }
    }

}

运行结果:

2、栈内存溢出:这里采用递归,当主线程进来的时候Java虚拟机就会开启一个虚拟机站

猜你喜欢

转载自www.cnblogs.com/sunxuesong/p/12036022.html