深入理解Java虛擬機器

2021-08-27 13:53:59 字數 377 閱讀 9944

1. class檔案是一組以8位位元組為基礎單位的二進位製流,各個資料專案嚴格按照順序緊湊地排列在class檔案中,中間沒有新增任何分隔符,這使得整個class檔案中儲存的內容幾乎全部是程式執行的必要資料,沒有空隙存在。當遇上占用8位位元組以上的資料時,按照高位在前的方式分割成若干個8位進行儲存(大端方式)。class檔案使用一種類似於c語言結構體的偽結構來儲存資料,這種結構只有兩種型別,無符號數和表。class 檔案結構。

magic 四位元組,為0xcafebabe

version(major/minor),高版本的jdk可以執行低版本的class檔案,反之不可以。

深入理解Java虛擬機器 JVM記憶體洩漏

jvm記憶體洩漏 記憶體洩漏就是存在一些物件沒有被 這些物件是可達的,但是這些物件是無用的,那麼這些物件就存在記憶體洩漏,即不會被gc 但是卻占用記憶體。記憶體溢位主要分為以下幾種 1.靜態集合類引起記憶體洩漏 像hashmap vector等的使用最容易出現記憶體洩露,這些靜態變數的生命週期和應用...

《深入理解Java虛擬機器》筆記 類檔案結構

各種不同平台的虛擬機器與所有平台都統一使用的程式儲存格式 位元組碼是構成平台無關性的基石。1.class類檔案的結構 常量池的入口放置一項u2型別的資料。代表常量池容量計數值 constant pool count 常量池主要放兩類常量 字面量和符號引用。字面量如文字字串 宣告為final的常量值等...

《深入理解Java虛擬機器》讀書筆記十

第十一章 晚期 執行期 優化 1 hotspot虛擬機器內的即時編譯 直譯器與編譯器 即時編譯器 直譯器與編譯器兩者各有優勢 hotspot虛擬機器中即時間編譯器 hotspot虛擬機器的分層編譯策略 編譯物件 觸發條件 方法呼叫計數器 回邊計數器 編譯過程 檢視及分析即時編譯結果 2 編譯優化技術...