当内存不足以引发OutOfMemoryError时会发生什么?
我知道每个对象都需要堆内存,而堆栈上的每个基本/引用都需要堆栈内存。 当我尝试在堆上创建对象并且没有足够的内存来执行此操作时,JVM 在堆上创建一个java.lang.OutOfMemoryError并将其扔给我。 因此,隐式地,这意味着JVM在启动时会保留一些内存。 当此保留的内存用完(肯定会用完,请阅读下面的讨论)并且JVM堆上没有足够的内存来创建java.lang.OutOfMemoryError实例时,会发生什么? 它只是挂了吗?还是null因为newOOM实例没有存储空间而将其扔给我? try { Object o = new Object(); // and operations which require memory (well.. that's like everything) } catch (java.lang.OutOfMemoryError e) { // JVM had insufficient memory to create an instance of java.lang.OutOfMemoryError to throw to us // what next? hangs here, stuck forever? …