java gc负责堆的内存释放,那栈的内存如果一个栈帧导致其满了,怎么办?

在其他人在哪里看到了这个答复:

Java中是通过栈帧来维护的,每调用方法的时候,就会创建栈帧,然后栈帧中有一个局部变量表,当函数调用结束的时候,这个栈帧就会自动释放,局部变量也被释放了

所以栈的内存都是随着函数的开始执行和结束自动分配,释放的

这个能理解,但是如果满了呢,会怎么办呢

2个回答

为什么有一个著名的网站叫做 stackoverflow.com
这个梗就是从这里来的。
如果你作为程序员而都没听说这个网站,你应该感觉羞愧。

qq_40467880
小猪piy 哈哈,这个网站我晓得。你一说我在看网站的名字,诶,还真是哈。
4 个月之前 回复

栈溢出程序就出错了哦,一般多见于死循环或者递归层级数过深。
Java 的 GC 是针对堆内存的,不包括栈内存的,栈是实现代码调用时的一种数据结构,一旦栈溢出,程序就没法玩了。

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 完全正确。直接写 void foo() { foo(); } 就可以看到效果了。
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问