系列十四(面试)、谈谈你对StackOverflowError的理解?

一、StackOverflowError

1.1、概述

        StackOverflowError是栈内存溢出的意思。栈中主要存储的是8种基本数据类型 + 引用类型 + 实例方法,栈的空间也是有限的,当存储进栈中的容量大于栈的最大容量时,就会报StackOverflowError的错误。

1.2、案例

/**
 * @Author : 一叶浮萍归大海
 * @Date: 2023/12/20 21:45
 * @Description: 演示栈内存溢出
 * JVM配置如下参数:-Xss128k -XX:+PrintGCDetails
 */
public class StackOverflowErrorMainApp {

    private int stackLength = 1;

    public void stackLeak() {
        stackLength++;
        stackLeak();
    }

    public static void main(String[] args) {
        StackOverflowErrorMainApp stackOverflowErrorMainApp = new StackOverflowErrorMainApp();
        try {
            stackOverflowErrorMainApp.stackLeak();
        } catch (Throwable e) {
            System.out.println("stackLength = " + stackOverflowErrorMainApp.stackLength);
            e.printStackTrace();
        }
    }

}

1.3、生产上如何避免

        避免死循环、递归调用。

1.4、StackOverflowError是错误还是异常

        StackOverflowError是个错误,其继承体系和api说明如下:

相关推荐

  1. 面试题】谈谈SpringBoot理解

    2023-12-21 21:12:02       39 阅读
  2. 谈谈Seata理解

    2023-12-21 21:12:02       59 阅读
  3. 谈谈 ES6 理解

    2023-12-21 21:12:02       34 阅读
  4. 一线大厂面试真题——谈谈ES理解

    2023-12-21 21:12:02       49 阅读
  5. 谈谈线程安全理解

    2023-12-21 21:12:02       55 阅读
  6. 什么是 RESTful API?谈谈理解

    2023-12-21 21:12:02       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-21 21:12:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-21 21:12:02       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-21 21:12:02       82 阅读
  4. Python语言-面向对象

    2023-12-21 21:12:02       91 阅读

热门阅读

  1. 启山智软丨机器学习的基础内容

    2023-12-21 21:12:02       70 阅读
  2. 项目架构演进过程

    2023-12-21 21:12:02       64 阅读
  3. 位运算:Leetcode371.两整数之和

    2023-12-21 21:12:02       54 阅读
  4. CCF编程能力等级认证GESP—C++4级—20230611

    2023-12-21 21:12:02       82 阅读
  5. Atcoder ABC179

    2023-12-21 21:12:02       54 阅读
  6. 支持向量机SVM

    2023-12-21 21:12:02       49 阅读