您好,登錄后才能下訂單哦!
JVM如何運行時數據區,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
1)堆:線程共享,存放新建的對象。
2)方法區:線程共享,存放類信息、常量、靜態變量等。
3)虛擬機棧:線程獨立,又叫線程棧。用來存放線程內部的局部變量,先進后出FILO。棧由棧幀組成,棧幀又分為:局部變量表,操作數棧,動態鏈接,方法出口。線程方法里產生的較小的局部對象也可能存放在虛擬機棧中。局部變量表:存放局部變量。
棧幀:java為每一個方法,在棧內存里分配一塊棧幀,用來隔離每個方法里的局部變量。
操作數棧:線程運行時,用于處理數據的臨時內存空間。
動態鏈接:
方法出口:記錄方法執行完成時返回當上級方法的執行位置。
4)本地方法棧:java調用本地方法(native 修飾的方法)時,分配的內存空間。
5)程序計數器:當前線程所執行的字節碼行號指示器,記錄代碼執行到哪一行
堆:
-Xms 最小值。
-Xmx 最大值。
方法區:
-XX:MetaSpaceSize 默認 21M,當內存快滿的時候會進行gc,根據gc后剩余的空間大小判 斷是否需要擴容。生產中一般設置成256M。
-XX:MaxMetaSpaceSize 默認 -1,不限制最大值。
棧:
-Xss 默認1M
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。