hotspot方法區的變化

2021-10-09 22:19:34 字數 459 閱讀 3935

jdk1.6及之前

有永久代,靜態變數存在永久代上

jdk1.7

有永久代,但已經逐步「去永久代」,字串常量池,靜態變數移除儲存在堆中

jdk8及以後

無永久代,型別資訊,字段,方法,常量儲存在本地記憶體的元空間,但是字串常量池,靜態變數任然儲存在堆上

jdk7及以前:永久代 佔jvm記憶體大小

jdk8及以後:元空間 佔物理機記憶體大小

jdk7及以前

-xx:maxpermsize 設定永久代最大大小 預設32位64m 64位82m

-xx:permsize 設定永久代初始大小 預設20.75m

jdk8及以後

-xx:maxmetaspacesize 設定永久代最大大小 預設-1 沒有限制

-xx:metaspacesize 設定永久代初始大小 預設21m

注意:new的靜態物件一直在堆上存放。

hotspot的記憶體對齊

上界對齊 define align x,a x a 1 a 1 就是以a為上界對齊的意思。舉個例子4k頁面邊界的例子,即a 4096 如果x 3888 那麼以上界對齊,執行結果就是4096。如果x 4096 結果是4096.如果x 4222 則結果為8192.下界對齊 define align x,...

APP字型大小,不隨系統的字型大小變化而變化的方法

resources res super.getresources configuration config new configuration config.settodefaults res.updateconfiguration config,res.getdisplaymetrics 雖然go...

設計中應對變化的方法

sicp習題2.76 乙個帶有通用型操作的大型系統可能不斷演化,在演化中常需要加入新的資料物件型別或者新的操作。對於上面提出的三種策略 帶有顯式分派的通用型操作,資料導向的風格,以及訊息傳遞的風格 請描述在加入乙個新型別 或者新操作時,系統所必須做的修改。哪種組織方式最適合那些經常需要加入新型別的系...