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