jvm虛擬機器 :
執行時資料:
虛擬機器棧中每個執行緒單獨占有-xss引數大小的記憶體.乙個執行緒使用記憶體超出此引數則丟擲stackoverflowerror,比較常見的就是死迴圈.
oom是在申請不到記憶體時,常見的就是建立很多執行緒.
堆中記憶體所有執行緒共享.分為年輕代和老年代.年輕代gc一些大物件和持久物件,老年代滿了fullgc,fullgc依然不足則丟擲oom
方法區包括常量池和class資訊.jdk1.8之後使用metespace代替了方法區.
方法區的好處是常亮共享不用頻繁建立物件.==對於基本型別比較的是值,引用型別比較的是位址.
淺入理解JVM虛擬機器
1.類載入過程 驗證 準備 解析 初始化 驗證階段 判斷.class檔案符合規範標準 準備階段 給類以及靜態變數分配記憶體並給初始值 0 解析階段 維護哥哥字段,方法類的記憶體指標或偏移量 初始化階段 變數賦值 真實的值 執行 什麼時候乙個類會進行初始化階段?1.new乙個例項化物件時 2.包含ma...
JVM之虛擬機器位元組碼執行引擎
執行時棧幀結構 棧幀儲存方法的區域性變數表 運算元棧 動態鏈結和方法返回位址等,每乙個方法由開始到結束,都對應著乙個棧幀在虛擬機器裡面的出棧入棧過程。對於執行引擎來說,在活動的執行緒中,只有位於棧頂的棧幀才有效,叫做當前棧幀,與這個棧幀相關聯的方法叫做當前方法。區域性變數表 是一組變數值儲存空間,存...
JVM虛擬機器查詢類檔案的順序
jvm查詢類檔案的順序 在doc下使用set classpath 如果沒有配置classpath環境變數,jvm只在當前目錄下查詢要執行的類檔案。如果配置了classpath環境,jvm會先在classpath環境變數值的目錄中查詢要執行的類檔案。值的結尾處如果加上分號,那麼jvm在classpat...