以下的这段代码应该是报错的才对,但是我在运行了之后,程序一直卡在那里。最后请教老师了解到,原来jvm如果不指定运行参数,是会进行自动扩容的。
package com.coding.jvm.oom;public class NativeErrorDemo {public static void main(String[] args) {for (; ; ) {new Thread(() -> {try {Thread.sleep(Integer.MAX_VALUE);} catch (InterruptedException e) {e.printStackTrace();}}).start();}}
}
于是,在运行这段代码之前,我手动指定了以下内存大小。
最后,运行之,达到了自己想要模拟的结果: