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

深入理解JVM字節(jié)碼
會員

本書一共12章,從邏輯上主要分為字節(jié)碼原理篇和應(yīng)用篇兩大部分。第1章詳細剖析了class文件的內(nèi)部結(jié)構(gòu),幫助讀者理解本書后面介紹的字節(jié)碼原理。第2章首先介紹了什么是字節(jié)碼,接下來介紹了Java虛擬機棧和棧幀的相關(guān)內(nèi)容,然后通過for循環(huán)、switch-case、try-catch-finally等語法講解了字節(jié)碼指令的用法。第3章介紹了字節(jié)碼的進階知識,主要目的是讓讀者掌握方法調(diào)用指令、泛型擦除、synchronized關(guān)鍵字、反射的底層實現(xiàn)原理。第4章介紹了javac編譯器的原理。編譯原理是計算機科學(xué)皇冠上的明珠,只有弄懂了javac才能更好地理解字節(jié)碼的生成原理。本章一開始介紹了javac源碼的調(diào)試方法,隨后詳細介紹了javac編譯的七大階段和各階段的作用。第5章從字節(jié)碼角度看Kotlin語言,介紹了常見語法糖和協(xié)程等的原理,希望讀者在學(xué)習(xí)其他JVM系語言時可以舉一反三,使用類似的思路。第6章介紹了ASM和Javassist兩個字節(jié)碼操作工具。這兩個工具非常重要,被廣泛用于中間件框架中,后面關(guān)于APM、軟件破解的章節(jié)都涉及這兩個工具的使用。第7章介紹了JavaInstrumentation的原理,分兩種方式講解了如何使用Instrumentation,最后介紹了AttachAPI的底層UNIX域套接字的通信原理。第8章介紹了JSR269插件化注解處理的原理,希望讀者可以通過本章掌握編譯期間生成、修改代碼的方法,理解Lombok、ButterKnife工具的實現(xiàn)原理。第9章主要介紹了字節(jié)碼在cglib、Fastjson、Dubbo、JaCoCo、Mock這些框架上的應(yīng)用,可以讓讀者接觸到更多字節(jié)碼的使用場景。第10章主要介紹了反編譯、破解、防破解和逆向工程的相關(guān)內(nèi)容。了解常見的破解和逆向方法能更好地保護自己的軟件產(chǎn)品。第11章介紹了APM的概況、分布式跟蹤的基本原理、OpenTracing的基本概念和無埋點字節(jié)碼插樁的代碼實現(xiàn)。如果對APM有興趣,可以將本章作為入門指導(dǎo),實現(xiàn)自己的APM產(chǎn)品。第12章詳細介紹了Androiddex文件的組成結(jié)構(gòu),以及Android字節(jié)碼指令與Java字節(jié)碼指令的區(qū)別,最后介紹了Gradle字節(jié)碼改寫實現(xiàn)無侵入插樁的方法。

張亞 ·程序設(shè)計 ·9萬字

QQ閱讀手機版

主站蜘蛛池模板: 贺兰县| 汉中市| 威宁| 凤山市| 黎城县| 昭觉县| 胶南市| 贵定县| 丽江市| 奎屯市| 威信县| 夏邑县| 宁陵县| 厦门市| 赤峰市| 会宁县| 阿鲁科尔沁旗| 永清县| 桂东县| 永康市| 桦甸市| 上蔡县| 冕宁县| 广南县| 长汀县| 大余县| 綦江县| 手游| 茶陵县| 阿拉善右旗| 伊吾县| 阳城县| 临城县| 福安市| 东乌珠穆沁旗| 佛山市| 东台市| 台江县| 健康| 宜都市| 建水县|