面试官,你继续问啊!!!---如何能使 JVM的堆、栈发生内存溢出,并给出实例代码?

堆中主要存储的是对象,所以一直不断的创建对象则会导致堆中的内存溢出。
栈中主要存储的每个方法执行时创建的栈帧,所以方法的递归调用会导致栈内存溢出

下列给出两种内存溢出的实例代码:

	/** 堆内存溢出 */
	public class HeapOutOfMemory {
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add(new HeapOutOfMemory());
    }
}
/** 栈内存溢出 */
public class StackOutOfMemory {
    public static void test() {
        test();
}
public static void main(String[] args) {
      while (true) {
          test();
      }
  }
}

你可能感兴趣的:(面试必备(背))