Java中StackOverflowError与OutOfMemoryError详解

使用Java开发,经常会遇到内存异常的情况,而StackOverflowError和OutOfMemoryError便是最常见的错误。首先,看看这两种错误的解释:

如果当前线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError异常。

如果虚拟机在扩展栈时无法申请到足够的内存空间,则抛出OutOfMemoryError异常。

StackOverflowError演示

@Test
public void test02() {
    recursion();
}

private void recursion() {
    recursion();
}

OutOfMemoryError演示

@Test
public void test03() {
    List<Object> list = new ArrayList<>();
    while (true) {
        list.add(new Object());
    }
}

results matching ""

    No results matching ""