Java應用程序爲所有線程啓動一個堆。每個線程都有自己的堆棧。Java(JVM)如何爲每個線程分配堆棧
當Java應用程序啓動時,我們使用JVM選項-Xms
和-Xmx
來控制堆的大小,並使用-Xss
來控制堆棧大小。
我的理解是,被創建的堆成爲JVM的「託管」內存,並且所有正在創建的對象都被放置在那裏。
但是,堆棧創建如何工作? Java是否在創建每個線程時創建一個堆棧?如果是這樣,堆棧在內存中的位置?它當然不在「被管理」的堆中。
JVM是從本地內存創建堆棧還是預先爲堆棧預分配一部分管理內存區域?如果是這樣,JVM如何知道如何創建線程?
您可能會發現[此答案](http://stackoverflow.com/a/25318740/2032064)interresting – Mifeet