大家都知道,大多数所有的递归函数都可以修改为迭代方法。假设我们举一个添加两个代表两个巨大数字的链表的例子。这个问题可以通过递归(使用系统堆栈)或迭代(显式堆栈使用)方法来解决。递归系统堆栈分配
我的疑问是,如果我已经给jvm堆大小为-Xms2048MB -Xmx2048M
那么在递归方法中它会使用所有的堆内存的系统堆栈? AFAIK如果我将使用显式堆栈,那么它可以消耗所有这些内存。如果有人可以告诉我如何分配系统堆栈内存,分配多少内存以及如何工作,这将非常棒。即使指向一些不错的教程也会有很大的帮助。如果可以限制w.r.t则尽可能java
世界然后它是好的。谢谢。
注意JVM:一'String'是它可以在堆栈上的引用,但实际的对象是在堆上。如果你使用对象,你应该假设他们会使用堆空间,不管你做什么。 –
顺便说一句我只会写'-Xmx2g'或者'-mx2g'或者没有设置全部,默认是主内存大小的1/4,只要你有一台像样的机器,你可能不需要设置它。 –