我目前正在学习Java,作为学习的一部分,我试图有意引起堆栈溢出,以了解它会做什么。
我进行了一些边界测试,有趣的是,我发现如果执行以下代码,只会偶发地导致错误。有时它会毫无问题地运行。
public class SO
{
public static void main(String[] args)
{
ohno(0);
}
public static void ohno(int a)
{
System.out.println(a);
if (a != 11413)
ohno(a+1);
}
}
我的问题如下:
有限的堆栈大小是分配给JVM的内存量的函数。
资源受限的系统中有较少的内存可以被分配,所以绝对有现实世界的场景中栈的大小是一个限制,而有些情况下,你必须使用迭代解决方案,以自然递归问题,结果倍。
仅当您允许JVM分配内存时,才增加系统的物理内存,否则,将获得该平台的默认值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句