官术网_书友最值得收藏!

如何閱讀這本書

本書一共12章,從邏輯上主要分為字節碼原理篇和應用篇兩大部分。

第1章詳細剖析了class文件的內部結構,幫助讀者理解本書后面介紹的字節碼原理。

第2章首先介紹了什么是字節碼,接下來介紹了Java虛擬機棧和棧幀的相關內容,然后通過for循環、switch-case、try-catch-finally等語法講解了字節碼指令的用法。

第3章介紹了字節碼的進階知識,主要目的是讓讀者掌握方法調用指令、泛型擦除、synchronized關鍵字、反射的底層實現原理。

第4章介紹了javac編譯器的原理。編譯原理是計算機科學皇冠上的明珠,只有弄懂了javac才能更好地理解字節碼的生成原理。本章一開始介紹了javac源碼的調試方法,隨后詳細介紹了javac編譯的七大階段和各階段的作用。

第5章從字節碼角度看Kotlin語言,介紹了常見語法糖和協程等的原理,希望讀者在學習其他JVM系語言時可以舉一反三,使用類似的思路。

第6章介紹了ASM和Javassist兩個字節碼操作工具。這兩個工具非常重要,被廣泛用于中間件框架中,后面關于APM、軟件破解的章節都涉及這兩個工具的使用。

第7章介紹了Java Instrumentation的原理,分兩種方式講解了如何使用Instrumentation,最后介紹了Attach API的底層UNIX域套接字的通信原理。

第8章介紹了JSR 269插件化注解處理的原理,希望讀者可以通過本章掌握編譯期間生成、修改代碼的方法,理解Lombok、ButterKnife工具的實現原理。

第9章主要介紹了字節碼在cglib、Fastjson、Dubbo、JaCoCo、Mock這些框架上的應用,可以讓讀者接觸到更多字節碼的使用場景。

第10章主要介紹了反編譯、破解、防破解和逆向工程的相關內容。了解常見的破解和逆向方法能更好地保護自己的軟件產品。

第11章介紹了APM的概況、分布式跟蹤的基本原理、OpenTracing的基本概念和無埋點字節碼插樁的代碼實現。如果對APM有興趣,可以將本章作為入門指導,實現自己的APM產品。

第12章詳細介紹了Android dex文件的組成結構,以及Android字節碼指令與Java字節碼指令的區別,最后介紹了Gradle字節碼改寫實現無侵入插樁的方法。

JVM字節碼技術的內容非常龐大,本書只是揭開了冰山一角,希望可以達到授之以漁的目的。讀者如果可以通過閱讀本書掌握一些工具和方法,舉一反三地解決開發過程中的實際問題,那我就非常滿足了。

主站蜘蛛池模板: 肥城市| 花莲市| 樟树市| 随州市| 锡林郭勒盟| 鄂尔多斯市| 景泰县| 太谷县| 汪清县| 巴楚县| 延津县| 抚顺市| 泗水县| 卢湾区| 介休市| 澎湖县| 壤塘县| 儋州市| 尼木县| 察雅县| 社旗县| 库尔勒市| 宁都县| 丰顺县| 时尚| 武义县| 红安县| 茶陵县| 广汉市| 邢台县| 梨树县| 偃师市| 周至县| 格尔木市| 海淀区| 黎川县| 蓝田县| 安庆市| 松潘县| 正安县| 金乡县|