最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Asmtools工具修改Java字節(jié)碼,并了解boolean類型在虛擬機中的表示方法

2020-08-04 18:49 作者:扎克蕉  | 我要投稿

說明:

在學習極客時間——《深入拆解JVM虛擬機》專欄中,有用到asmtools這樣一個工具,用以修改class文件。

一.獲取工具

獲取工具方法:

  1. 自己構(gòu)建asmtools.jar:https://www.cnblogs.com/yelongsan/p/9674723.html

  2. 直接下載asmtools.jar:https://yun.515code.com/file/asmtools.jar

另外,下載 JD-GUI ,它是".class"文件的反編譯工具。

拿到j(luò)ar包后,我們進入命令行即可。

二.測試

1.生成一個java文件,名字為 Foo.java

echo命令生成Foo.java

2.編譯并執(zhí)行

編譯與執(zhí)行Java文件

3.將class文件轉(zhuǎn)換為jasm文件

class文件轉(zhuǎn)換為jasm文件

我們都知道,boolean類型為true時在虛擬機用1代替(boolValue在虛擬機中值為1)

接下來,將第一個 iconst_1 改為 iconst_2( 相當于把boolValue值改為2 )

4.將jasm文件轉(zhuǎn)換為class文件

java -jar asmtools.jar jasm Foo.jasm

5.使用 JD-GUI 打開 Foo.class(內(nèi)容如下)

Foo.class 文件內(nèi)容

再次執(zhí)行:

命令行執(zhí)行?java Foo

三.總結(jié)

1. 學會使用asmtools工具修改class文件:

  • 由 class 文件生成 jasm 文件:java -jar asmtools.jar jdis Foo.class > Foo.jasm

  • 由 jasm 文件生成 class 文件:java -jar asmtools.jar jasm Foo.jasm

2. 使用JD-GUI可以反編譯class文件

3. 通過上面簡單的小例子,證實了boolean類型在虛擬機中值為0或1,有趣的是 if (boolValue) 會被翻譯成 if (b != 0)


文章作者: 扎克蕉

文章鏈接: https://www.515code.com/posts/g3f7b5h7/

版權(quán)聲明: 本博客所有文章除特別聲明外,均采用 CC BY-NC-SA 4.0 許可協(xié)議。轉(zhuǎn)載請注明來自 515code-實驗室。


Asmtools工具修改Java字節(jié)碼,并了解boolean類型在虛擬機中的表示方法的評論 (共 條)

分享到微博請遵守國家法律
渝中区| 岱山县| 城固县| 柯坪县| 宁强县| 彰武县| 沛县| 四子王旗| 张北县| 大城县| 台北市| 仲巴县| 天镇县| 酒泉市| 双流县| 河间市| 通海县| 石门县| 静安区| 石河子市| 星子县| 阜阳市| 古交市| 信阳市| 达孜县| 澜沧| 包头市| 海原县| 衡山县| 馆陶县| 长春市| 丽水市| 砚山县| 尚志市| 江北区| 西安市| 万盛区| 定州市| 佛学| 新竹市| 乌鲁木齐市|