深入理解Java虛擬機器 – 閱讀class檔案的三種姿勢(連載2)
對於熟悉Java程式語言的人來說,JVM(Java Virtual Machine)是實現語言無關性的基石,被JVM所識別的.class檔案是實現平臺無關性的基石。這一點的具體資訊可參考
https://www.datapro.cool/2364.html
.class檔案中包含了被虛擬機器所識別的位元組碼指令,看懂位元組碼指令是邁向高階架構師的一小步(不積跬步無以至千里)。本文將介紹幾種如何檢視class檔案位元組碼指令的方法。
.class檔案中存的是被JVM識別的16進位制數,這些16進位制數與位元組碼指令的關係如下(附Java虛擬機器規範官方文件)
.class中的每一個16進位制數都在Java虛擬機器規範中能找到對應的位元組碼指令資訊。
附Java虛擬機器規範官方文件:https://docs.oracle.com/javase/specs/
Notepad++(HEX-Editor外掛)法
首先官網下載Notepad++: https://notepad-plus.en.softonic.com/
【新增notepad++到滑鼠右鍵快捷選單方法】:
直接開啟class檔案是這樣的(亂碼)
依次點選 Plugins — Plugins Admin…
搜尋 HEX-Editor, 勾選並安裝外掛
外掛安裝完畢後,介面頂部右側會出現 H 標誌,表明安裝成功,此時點選H 即可以16進位制的方式轉換.class檔案
IDE(idea、eclipse)外掛法(牆裂推薦)
對於整合在開發環境中的外掛來說更容易的閱讀位元組碼,並且擴充套件內容更豐富
IntelliJ IDEA (jclasslib)
首先安裝外掛jclasslib
安裝完畢後,任意開啟一個.java檔案,然後依次點選 View — Show Bytecode With Jclasslib
找到如下位置,即可看到當前java檔案的位元組碼指令(如同javap反編譯一樣)
Eclipse( JBC)
開啟eclipse 依次點選Help — Eclipse Marketplace…, 出現如下彈框,搜尋JBC:
安裝完成後重啟Eclipse,找到任以java檔案,右擊以 Open JBC方式開啟
開啟後即可看到對應java檔案的位元組碼指令資訊
Binary Viewer
這是一款檢視二進位制的軟體工具,對於自身是16進位制的也會識別,並且檔案的資訊量比Notepad++開啟的class檔案資訊量更豐富
官網下載地址:https://binary-viewer.en.softonic.com/
以上就是三種常見檢視位元組碼指令的方法,平時最常用的是結合IED一起使用的方法
更多精彩內容請關注公眾號 資料與程式設計之美
相關文章
- 《深入理解Java虛擬機器》-(實戰)練習修改class檔案Java虛擬機
- 類檔案結構——深入理解Java虛擬機器 筆記三Java虛擬機筆記
- 深入理解Java虛擬機器(類檔案結構)Java虛擬機
- 深入理解Java虛擬機器 – 類檔案結構Java虛擬機
- 《深入理解Java虛擬機器(第2版)》分享下載Java虛擬機
- Java虛擬機器之Class類檔案結構Java虛擬機
- 深入理解java虛擬機器Java虛擬機
- 深入理解Java虛擬機器 - 類載入機制Java虛擬機
- 深入理解Java虛擬機器(類載入機制)Java虛擬機
- 深入理解Java虛擬機器 --- 類載入機制Java虛擬機
- 《深入理解java虛擬機器》第七章讀書筆記——虛擬機器類載入機制Java虛擬機筆記
- 深入理解java虛擬機器——讀書筆記1Java虛擬機筆記
- 深入理解Java虛擬機器(一)Java虛擬機
- 深入理解Java虛擬機器(二)Java虛擬機
- 深入理解虛擬機器之類檔案結構虛擬機
- 深入理解 python 虛擬機器:pyc 檔案結構Python虛擬機
- 深入理解虛擬機器之虛擬機器類載入機制虛擬機
- (深入理解 Java虛擬機器)一篇文章帶你深入瞭解Java 虛擬機器類載入器Java虛擬機
- 深入理解Java虛擬機器 --- 垃圾回收器Java虛擬機
- 【深入理解Java虛擬機器】垃圾回收Java虛擬機
- JVM虛擬機器Class類檔案研究分析JVM虛擬機
- 深入學習Java虛擬機器——類檔案結構Java虛擬機
- 深入理解jvm-2Edition-虛擬機器類載入機制JVM虛擬機
- 《深入理解 Java 虛擬機器》筆記整理Java虛擬機筆記
- [深入理解Java虛擬機器]執行緒Java虛擬機執行緒
- 《深入理解java虛擬機器》筆記3——7種垃圾收集器Java虛擬機筆記
- 《深入理解Java虛擬機器》第三章讀書筆記(三)——經典垃圾回收器Java虛擬機筆記
- 深入理解JVM(③)虛擬機器的類載入時機JVM虛擬機
- 破解class檔案的第一步:深入理解JAVA Class檔案Java
- 深入理解JVM,虛擬機器類載入機制JVM虛擬機
- 深入理解java虛擬機器之垃圾收集器Java虛擬機
- 深入理解JVM虛擬機器6:深入理解JVM類載入機制JVM虛擬機
- 深入理解Java虛擬機器之實戰OutOfMemoryErrorJava虛擬機Error
- 《深入理解Java虛擬機器》個人筆記Java虛擬機筆記
- 深入理解Java虛擬機器之垃圾回收篇Java虛擬機
- 【進階之路】深入理解Java虛擬機器的類載入機制(長文)Java虛擬機
- 深入理解JVM(③)虛擬機器的類載入過程JVM虛擬機
- [深入理解Java虛擬機器]垃圾回收演算法Java虛擬機演算法