黑马程序员---JVM内存组成
生活随笔
收集整理的這篇文章主要介紹了
黑马程序员---JVM内存组成
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
java把內存分兩種:一種是棧內存,另一種是堆內存
1。在函數中定義的基本類型變量和對象的引用變量都在函數的棧內存中分配;
2。堆內存用來存放由 new創建的對象和數組
在函數(代碼塊)中定義一個變量時, java就在棧中為這個變量分配內存空間,當超過變量的作用域后, java會自動釋放掉為該變量所分配的內存空間;在堆中分配的內存由 java虛擬機的自動垃圾回收器來管理
堆的優勢是可以動態分配內存大小,生存期也不必事先告訴編譯器,因為它是在運行時動態分配內存的。缺點就是要在運行時動態分配內存,存取速度較慢;
棧的優勢是存取速度比堆要快,缺點是存在棧中的數據大小與生存期必須是確定的無靈活 性。
java 堆分為三個區: New 、 Old 和 Permanent
GC 有兩個線程:
新創建的對象被分配到 New 區,當該區被填滿時會被 GC 輔助線程移到 Old 區,當 Old 區也填滿了會觸發 GC 主線程遍歷堆內存里的所有對象。 Old 區的大小等于 Xmx 減去 -Xmn
java棧存放
棧調整:參數有 +UseDefaultStackSize -Xss256K,表示每個線程可申請 256k的棧空間
每個線程都有他自己的 Stack
轉載于:https://www.cnblogs.com/castworld/p/4874283.html
總結
以上是生活随笔為你收集整理的黑马程序员---JVM内存组成的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 夏天做梦梦到下雪是什么征兆
- 下一篇: UVA-11536 Smallest S