日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JVM总结---各处总结

發布時間:2024/4/17 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JVM总结---各处总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

堆與棧分開設計是為什么呢?

  • 棧存儲了處理邏輯、堆存儲了具體的數據,這樣隔離設計更為清晰
  • 堆與棧分離,使得可以被多個棧共享
  • 棧保存了上下文的信息,因此只能向上增長;而堆是動態分配

?

?線程棧

1、每當啟動一個新線程的時候,java虛擬機都會為它分配一個java棧;

2、虛擬機只會對java棧執行兩種操作:以棧幀為單位的壓棧或者出棧;

3、它壓入的每個棧幀(Stack Frame)是----程序指令 ?以及 ? 局部變量表 ,每個方法調用對應一個棧幀

局部變量表

包括==>:①各種基本數據類型;對象的引用

各種基本數據類型:

boolean、byte、char、short、int、float、long、double ;

?

4、我們需要注意到:每個 線程 都有 獨立的棧 并且是互相隔離的。

棧的大小可以受到幾個因素影響:

1??一個是jvm參數 -XSS ?;

2??除了JVM設置,我們還可以在創建線程Thread的時候手工指定大小:?

你在創建線程的時候參數傳遞進去,默認是1M

?

----------------------------------------------------------------------------------------

1、Java 堆(Java Heap)是Java 虛擬機所管理的內存中最大的一塊;

2、Java 堆是被所有線程共享的一塊內存區域,在虛擬機啟動時創建;

3、此內存區域的唯一目的就是存放對象實例,幾乎所有的對象實例都在這里分配內存;

①首先堆可以劃分為新生代老年代

新生代 ( Young ) 與老年代 ( Old ) 的比例的值為 1:2 ( 該值可以通過參數 –XX:NewRatio 來指定 )

②新生代又可以劃分為一個Eden區兩個Survivor(幸存)區?

1、按照規定,新對象會首先分配在Eden中(如果對象過大,比如大數組,將會直接放到老年代)。

2、在GC中,Eden中的對象會被移動到survivor中,直至對象滿足一定的年紀(定義為熬過minor GC【當Eden區滿時,觸發Minor GC】的次數),會被移動到老年代。

3、默認的,Eden : from : to = 8 : 1 : 1 ( 可以通過參數 –XX:SurvivorRatio 來設定 ),即: Eden = 8/10 的新生代空間大小,from = to = 1/10 的新生代空間大小。 ③靜態方法區,又稱為永久代(Perm Generation)

它用于存儲已被虛擬機加載的 ?類信息 ,常量, 靜態變量, 即時編譯后的代碼 ??等數據?

?

-----------------------------------------------------------------------------

①Minor GC ?和 Full GC

Minor GC觸發條件

:當Eden,Survivor區滿時,觸發Minor GC。

Minor GC ---采用的垃圾回收機制是 復制算法?

因為:新生代每次垃圾回收倒要回收大部分的對象,也就說需要復制的操作次數較少,

但是在實際中并不是按照1:1比例來劃分新生代空間的,一般來說,將新生代劃分為一塊較大的Eden代和兩塊較小的Survivor代,比例大概是

8:1:1;每次只是用Eden代,當進行回收時,將Eden代還存活的對象復制到一塊Survor1對象中,然后清理掉

Eden代。第二次MinorGC會清理Eden代和Survor1,將對象存放到Survor2中,然后將Eden代和Survor1中的對象清理掉。當Survor2中的對象放不下的時候,會存放到 老年代;

?

?

Full GC觸發條件:

(1)調用System.gc時,系統建議執行Full GC,但是不必然執行

(2)老年代空間不足

(3)方法區空間不足

(4)通過Minor GC后進入老年代的平均大小》大于老年代的可用內存

(5)由Eden區、From Space區向To Space區復制時,對象大小大于To Space可用內存,則把該對象轉存到老年代,且老年代的可用內存小于該對象大小

使用到的垃圾回收算法:Mark-Compact算法

由于老年代的特點是每次回收的都是少量對象,一般使用的是 Mark-Compact 算法

?

轉載于:https://www.cnblogs.com/yunshenbuzhichu/p/9676302.html

總結

以上是生活随笔為你收集整理的JVM总结---各处总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。