大家都知道,大多數所有的遞歸函數都可以修改爲迭代方法。假設我們舉一個添加兩個代表兩個巨大數字的鏈表的例子。這個問題可以通過遞歸(使用系統堆棧)或迭代(顯式堆棧使用)方法來解決。遞歸系統堆棧分配
我的疑問是,如果我已經給jvm堆大小爲-Xms2048MB -Xmx2048M
那麼在遞歸方法中它會使用所有的堆內存的系統堆棧? AFAIK如果我將使用顯式堆棧,那麼它可以消耗所有這些內存。如果有人可以告訴我如何分配系統堆棧內存,分配多少內存以及如何工作,這將非常棒。即使指向一些不錯的教程也會有很大的幫助。如果可以限制w.r.t則儘可能java
世界然後它是好的。謝謝。
注意JVM:一'String'是它可以在堆棧上的引用,但實際的對象是在堆上。如果你使用對象,你應該假設他們會使用堆空間,不管你做什麼。 –
順便說一句我只會寫'-Xmx2g'或者'-mx2g'或者沒有設置全部,默認是主內存大小的1/4,只要你有一臺像樣的機器,你可能不需要設置它。 –