内存溢出通常分为两种情况: 栈溢出和 堆内存溢出。下面分别给出这两种情况的示例代码。
栈溢出
栈溢出通常是由于递归调用没有终止条件或者方法调用层次过深导致的。以下是一个简单的栈溢出示例:
```java
public class StackMemoryOverflow {
public static void main(String[] args) {
recursiveMethod();
}
public static void recursiveMethod() {
// 没有终止条件的递归调用
recursiveMethod();
}
}
```
运行上述代码将会导致`StackOverflowError`。
堆内存溢出
堆内存溢出通常是由于程序不断申请内存而没有释放导致的。以下是一个简单的堆内存溢出示例:
```java
import java.util.ArrayList;
import java.util.List;
public class HeapMemoryOverflow {
public static void main(String[] args) {
List