中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

IDEA一鍵如何查看Java字節碼及其他類信息插件

發布時間:2022-01-24 09:45:13 來源:億速云 閱讀:186 作者:柒染 欄目:開發技術

這期內容當中小編將會給大家帶來有關IDEA一鍵如何查看Java字節碼及其他類信息插件,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

IDEA一鍵如何查看Java字節碼及其他類信息插件

開始推薦 IDEA 字節碼查看神器之前,先來回顧一下 Java 字節碼是啥。

何為 Java 字節碼?

Java 虛擬機(JVM)是運行 Java 字節碼的虛擬機。JVM 有針對不同系統的特定實現(Windows,Linux,macOS),目的是使用相同的字節碼,它們都會給出相同的結果。

什么是字節碼?采用字節碼的好處是什么?

在 Java 中,JVM 可以理解的代碼就叫做字節碼的文件),它不面向任何特定的處理器,只面向虛擬機。Java 語言通過字節碼的方式,在一定程度上解決了傳統解釋型語言執行效率低的問題,同時又保留了解釋型語言可移植的特點。所以 Java 程序運行時比較高效,而且,由于字節碼并不針對一種特定的機器,因此,Java 程序無須重新編譯便可在多種不同操作系統的計算機上運行。

Java 程序從源代碼到運行一般有下面 3 步:

IDEA一鍵如何查看Java字節碼及其他類信息插件

為什么要查看 Java 字節碼?

我們在平時學習的時候,經常需要查看某個 java 類的字節碼文件。查看字節碼文件更容易讓我們搞懂 java 代碼背后的原理比如搞懂 java 中的各種語法糖的本質。

如何查看 Java 字節碼?

如果我們通過命令行來查看某個 class 的字節碼文件的話,可以直接通過 javap 命令,不過這種方式太原始了,效率十分低,并且看起來不直觀。

下面介紹兩種使用 IDEA 查看類對應字節碼文件的方式(javap這種方式就不提了)。

我們以這段代碼作為案例:

public class Main {
    public static void main(String[] args) {
        Integer i = null;
        Boolean flag = false;
        System.out.println(flag ? 0 : i);
    }
}

上面這段代碼由于使用三目運算符不當導致詭異了 NPE 異常。為了搞清楚事情的原因,我們來看其對應的字節碼。

使用 IDEA 自帶功能

我們點擊 View -> Show Bytecode 即可通過 IDEA 查看某個類對應的字節碼文件。

需要注意的是:查看某個類對應的字節碼文件之前確保它已經被編譯過。

IDEA一鍵如何查看Java字節碼及其他類信息插件

稍等幾秒鐘之后,你就可以直觀到看到對應的類的字節碼內容了。

IDEA一鍵如何查看Java字節碼及其他類信息插件

從字節碼中可以看出,我圈出來的位置發生了 拆箱操作 。

  • 裝箱:將基本類型用它們對應的引用類型包裝起來;

  • 拆箱:將包裝類型轉換為基本數據類型;

詳細解釋下就是:flag ? 0 : i 這行代碼中,0 是基本數據類型 int,返回數據的時候 i 會被強制拆箱成 int 類型,由于 i 的值是 null,因此就拋出了 NPE 異常。

Integer i = null;
Boolean flag = false;
System.out.println(flag ? 0 : i);

如果,我們把代碼中 flag 變量的值修改為 true 的話,就不會存在 NPE 問題了,因為會直接返回 0,不會進行拆箱操作。

使用 IDEA 插件 jclasslib(推薦)

相比于 IDEA 自帶的查看類字節的功能,我更推薦 jclasslib 這個插件,非常棒!

使用 jclasslib 不光可以直觀地查看某個類對應的字節碼文件,還可以查看類的基本信息、常量池、接口、屬性、函數等信息。

IDEA一鍵如何查看Java字節碼及其他類信息插件

我們直接在 IDEA 的插件市場即可找到這個插件。我這里已經安裝好了。

IDEA一鍵如何查看Java字節碼及其他類信息插件

安裝完成之后,重啟 IDEA。點擊View -> Show Bytecode With jclasslib 即可通過jclasslib 查看某個類對應的字節碼文件。

IDEA一鍵如何查看Java字節碼及其他類信息插件

后記

工作需要,調研了桌面端開發常用的一些技術棧,分享出來,供需要的小伙伴參考。

IDEA一鍵如何查看Java字節碼及其他類信息插件

上述就是小編為大家分享的IDEA一鍵如何查看Java字節碼及其他類信息插件了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

富源县| 深州市| 理塘县| 扎鲁特旗| 黄大仙区| 聂拉木县| 巴南区| 梨树县| 墨玉县| 汶上县| 石景山区| 舞钢市| 扶风县| 体育| 德州市| 淮阳县| 米脂县| 克东县| 通城县| 嘉鱼县| 周宁县| 溆浦县| 蓬莱市| 南乐县| 乐安县| 克山县| 买车| 旬阳县| 新津县| 双城市| 无棣县| 和平区| 修文县| 武义县| 大荔县| 琼海市| 宜兰县| 海阳市| 重庆市| 方城县| 云龙县|