递归中的系统堆栈分配

时间:2013-07-09 12:27:43

标签: java operating-system jvm heap

众所周知,所有大多数递归函数都可以修改为迭代方法。假设我们举一个例子来添加两个代表两个巨大数字的链接列表。这个问题可以通过递归(使用系统堆栈)或迭代(显式堆栈使用)方法来解决。

我怀疑的是,如果我将jvm堆大小赋予-Xms2048MB -Xmx2048M,那么在递归方法中它是否会将所有堆内存用于系统堆栈? AFAIK如果我将使用显式堆栈,那么它可以消耗所有这些内存。如果有人也可以告诉我如何分配系统堆栈内存以及分配多少工作量,那将会很棒。即使指向一些不错的教程也会有很大的帮助。如果它可以被限制w.r.t.尽可能java世界然后它很好。感谢。

1 个答案:

答案 0 :(得分:2)

由于堆栈帧具有自己的大小,因此不可能发生这种情况。可以通过命令行参数-Xss<size>调整此大小。

堆内存与此堆栈内存完全分离。

默认堆栈大小取决于您正在运行的JVM