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

歡迎光臨散文網(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類型在虛擬機中的表示方法的評論 (共 條)

分享到微博請遵守國家法律
化州市| 凤庆县| 曲靖市| 康保县| 获嘉县| 沛县| 彩票| 红原县| 微山县| 容城县| 会东县| 分宜县| 萨迦县| 玉溪市| 建瓯市| 新河县| 剑河县| 弋阳县| 嘉义县| 郧西县| 斗六市| 台前县| 榆社县| 韶山市| 华池县| 萝北县| 陆川县| 铜陵市| 肇东市| 平定县| 峨山| 鹤岗市| 扎兰屯市| 梓潼县| 新宾| 晋中市| 普陀区| 偃师市| 揭东县| 宜宾县| 临沧市|