深入理解JVM字节码

深入理解JVM字节码

作者:张亚

出版社:机械工业

出版年:2020年5月

ISBN:9787111653721

所属分类:经济金融

书刊介绍

《深入理解JVM字节码》内容简介

本书一共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字节码改写实现无侵入插桩的方法。
张亚,资深后端工程师和Java工程师,CVTE(视源股份,股票代码:002841)高级技术经理,带领20多人的研发团队做教育相关的产品。主要方向是JVM调优及故障诊断、TCP源码剖析、高并发系统设计,致力于后端底层技术细节的研究。独立实现了公司级全链路APM产品,在字节码、ASM、软件破解等方向有丰富的实战经验。vim狂热爱好者,热衷分享,是掘金平台的优秀作者,在掘金上撰写过两本关于JVM和TCP底层原理的小册子。

作品目录

前言
第1章:深入剖析class文件结构
1.1、初探class文件
1.2、class文件结构剖析
1.3、使用javap查看类文件
1.4、小结
第2章:字节码基础
2.1、字节码概述
2.2、Java虚拟机栈和栈帧
2.3、字节码指令
2.4、小结
第3章:字节码进阶
3.1、方法调用指令
3.2、Lambda表达式的原理
3.3、泛型与字节码
3.4、synchronized的实现原理
3.5、反射的实现原理
3.6、小结
第4章:javac编译原理简介
4.1、javac源码调试
4.2、javac的七个阶段
4.3、小结
第5章:从字节码角度看Kotlin语言
5.1、Metadata注解
5.2、顶层方法
5.3、object单例
5.4、扩展方法
5.5、接口默认方法
5.6、默认参数
5.7、高级for循环
5.8、data
class
5.9、多返回值
5.10、协程的实现原理
5.11、从字节码分析Kotlin编译器的bug
5.12、小结
第6章:ASM和Javassist字节码操作工具
6.1、ASM介绍
6.2、Javassist介绍
6.3、小结
第7章:Java
Instrumentation原理
7.1、Java
Instrumentation简介
7.2、Instrumentation与-javaagent启动参数
7.3、JVM
Attach
API介绍
7.4、小结
第8章:JSR
269插件化注解处理原理
8.1、JSR
269简介
8.2、抽象语法树操作API
8.3、JSR
269在常用框架上的应用
8.4、小结
第9章:字节码的应用
9.1、cglib动态代理原理分析
9.2、字节码在Fastjson上的应用
9.3、字节码在Dubbo上的应用
9.4、字节码在JaCoCo代码覆盖率上的应用
9.5、字节码在Mock上的应用
9.6、小结
第10章:软件破解和防破解
10.1、反编译
10.2、软件破解
10.3、软件防破解
10.4、小结
第11章:全链路分布式跟踪与APM
11.1、全链路分布式跟踪介绍
11.2、见微知著之APM
11.3、小结
第12章:Android字节码与APM
12.1、dex文件结构
12.2、Android字节码
12.3、Gradle插件编写
12.4、Android字节码注入原理
12.5、小结

相关推荐

微信二维码