Java内存溢出问题:堆栈溢出示例

原创 逃离我推掉我的手 2024-09-17 20:45 351阅读 0赞

在Java中,内存溢出主要分为两种情况:堆栈溢出(StackOverflowError)和直接内存溢出(OutOfMemoryError)。

下面是一个简单的堆栈溢出例子:

  1. public class StackOverflowExample {
  2. public static void main(String[] args) {
  3. // 创建一个无限递归方法
  4. recursiveMethod(10000); // 这里递归深度过深
  5. }
  6. // 无限递归方法,示例中深度过深导致溢出
  7. public static void recursiveMethod(int depth) {
  8. if (depth > 0) {
  9. recursiveMethod(depth - 1);
  10. } else {
  11. System.out.println("Stack Overflow at depth " + depth);
  12. }
  13. }
  14. }

当你运行这个程序时,由于递归深度设置过大(这里设置为10000),导致Java虚拟机无法处理这样的情况,进而抛出StackOverflowError异常。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,351人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C++:堆栈溢出问题

    堆栈溢出的原因 1.函数调用层次太深。函数递归调用时,系统要在栈中不断保存函数调用时的现场和产生的变量,如果递归调用太深,就会造成栈溢出,这时递归无法返回。再有,当