的字节码原理55
2.3.8 ++i和i++的字节码原理60
2.3.9 try-catch-finally的字节码原理63
2.3.10 try-with-resources的字节码原理71
2.3.11 对象相关的字节码指令74
2.4 小结77
第3章 字节码进阶78
3.1 方法调用指令78
3.1.1 invokestatic指令79
3.1.2 invokevirtual指令79
3.1.3 invokespecial指令80
3.1.4 invokeinterface指令80
3.1.5 invokedynamic指令90
3.2 Lambda表达式的原理95
3.3 泛型与字节码100
3.4 synchronized的实现原理102
3.5 反射的实现原理106
3.5.1 反射方法源码分析107
3.5.2 反射的inflation机制109
3.6 小结110
第4章 javac编译原理简介111
4.1 javac源码调试112
4.2 javac的七个阶段114
4.2.1 parse阶段115
4.2.2 enter阶段116
4.2.3 process阶段118
4.2.4 attr阶段118
4.2.5 flow阶段121
4.2.6 desugar阶段122
4.2.7 generate阶段126
4.3 小结129
第5章 从字节码角度看Kotlin语言130
5.1 Metadata注解130
5.2 顶层方法132
5.3 object单例133
5.4 扩展方法134
5.5 接口默认方法135
5.6 默认参数137
5.7 高级for循环140
5.8 dataclass142
5.9 多返回值143
5.10 协程的实现原理144
5.10.1 CPS介绍145
5.10.2 suspend关键字146
5.11 从字节码分析Kotlin编译器的bug149
5.12 小结153
第6章 ASM和Javassist字节码操作工具154
6.1 ASM介绍154
6.1.1 ASMCoreAPI核心类156
6.1.2 ASM操作字节码示例158
6.2 Javassist介绍169
6.2.1 Javassist核心API169
6.2.2 Javassist操作字节码示例170
6.3 小结174
第7章 JavaInstrumentation原理175
7.1 JavaInstrumentation简介175
7.2 Instrumentation与-javaagent启动参数176
7.3 JVMAttachAPI介绍180
7.3.1 JVMAttachAPI基本使用181
7.3.2 JVMAttachAPI的底层原理183
7.4 小结190
第8章 JSR269插件化注解处理原理191
8.1 JSR269简介191
8.2 抽象语法树操作API193
8.2.1 Names介绍193
8.2.2 JCTree介绍193
8.2.3 TreeMaker介绍198
8.2.4 自定义注解处理实战202
8.3 JSR269在常用框架上的应用207
8.3.1 案例一:ButterKnife207
8.3.2 案例二:Lombok209
8.4 小结212
第9章 字节码的应用213
9.1 cglib动态代理原理分析213
9.1.1 cglib核心API介绍214
9.1.2 cglib原理分析216
9.2字节码在Fastjson上的应用218
9.3 字节码在Dubbo上的应用221
9.4 字节码在JaCoCo代码覆盖率上的应用222
9.5 字节码在Mock上的应用225
9.6 小结227
第10章 软件破解和防破解228
10.1 反编译228
10.2 软件破解229
10.2.1 破解方式一:直接修改class文件230
10.2.2 破解方式二:javaagent无痛破解232
10.3 软件防破解234
10.3.1 自定义ClassLoader234
10.3.2 JNI隐藏核心逻辑237
10.3.3 基于JVMTI的加密方案239
10.3.4 混淆245
10.4 小结250
第11章 全链路分布式跟踪与APM251
11.1 全链路分布式跟踪介绍251
11.1.1 什么是全链路分布式跟踪252
11.1.2 OpenTracing基本术语253
11.1.3 分布式跟踪的实现和上下文传递254
11.2 见微知著之APM260
11.2.1 APM基本概念260
11.2.2 APM的字节码注入实现261
11.2.3 其他平台的APM实现272
11.3 小结273
第12章 Android字节码与APM274
12.1 dex文件结构274
12.1.1 header276
12.1.2 string_ids278
12.1.3 type_ids280
12.1.4 proto_ids281
12.1.5 field_ids282
12.1.6 method_ids283
12.1.7 class_defs284
12.1.8 data288
12.1.9 link_data288
12.2 Android字节码288
12.2.1 Android字节码概述288
12.2.2 常见的字节码指令介绍289
12.3 Gradle插件编写295
12.3.1 自定义Gradle插件295
12.3.2 独立的Gradle插件项目296
12.4 Android字节码注入原理297
12.4.1 TransformAPI介绍297
12.4.2 字节码注入代码实现299
12.5 小结301
编程语言与程序设计
Python编程 从入门到实践 第3版(图灵出品)
编程语言与程序设计
Hello算法(图灵出品)
编程语言与程序设计
C++ Primer Plus 第6版 中文版(异步图书出品)
编程语言与程序设计
C++ Primer(中文版 第5版)(博文视点出品)
编程语言与程序设计
高效C/C++调试