老师我想问下饿汉模式如果不加static报错的问题
代码如下
class F{
F a=new F();
public static void main(String[] arts){
F b=new F();
}
}
程序会报栈溢出异常,但是我觉得应该是堆异常,因为对象和成员变量应该存储在堆里会不断的产生直至溢出,可是栈里的局部变量没有增加啊?请老师解惑
0
收起
正在回答
2回答
所有的方法包括构造方法都要进栈执行,这段代码引发了无参构造方法的无限递归调用,也就会在栈内累计,超出栈内存可容纳的方法个数,导致栈内存溢出。
如果我的回答解决了你的问题,请采纳,祝学习愉快.
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星