深入理解JVM字节码
全新正版 极速发货
¥
49.61
5.6折
¥
89
全新
库存6件
作者张亚
出版社机械工业出版社
ISBN9787111653721
出版时间2020-05
装帧平装
开本16开
定价89元
货号1202067125
上书时间2024-06-04
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
作者简介张亚后端工程师和Java工程师,CVTE(视源股份,股票代码:002841)不错技术经理,带领20多人的研发团队做教育相关的产品。主要方向是 JVM 调优及故障诊断、TCP 源码剖析、高并发系统设计,致力于后端底层技术细节的研究。独立实现了公司级全链路APM 产品,在字节码、ASM、软件破解等方向有丰富的实战经验。vim 狂热爱好者,热衷分享,是掘金平台的作者,在掘金上撰写过两本关于JVM和TCP 底层原理的小册子。
目录
前言
章深入剖析class文件结构1
1.1初探class文件1
1.2class文件结构剖析3
1.2.1魔数4
1.2.2版本号6
1.2.3常量池7
1.2.4Accessflags18
1.2.5this_class、super_name、interfaces19
1.2.6字段表20
1.2.7方法表23
1.2.8属性表25
1.3使用javap查看类文件30
1.4小结32
第2章字节码基础33
2.1字节码概述33
2.2Java虚拟机栈和栈帧34
2.3字节码指令41
2.3.1加载和存储指令41
2.3.2操作数栈指令42
2.3.3运算和类型转换指令45
2.3.4控制转移指令46
2.3.5for语句的字节码原理48
2.3.6switch-case底层实现原理54
2.3.7String的switch-case实现的字节码原理55
2.3.8i和i的字节码原理60
2.3.9try-catch-finally的字节码原理63
2.3.10try-with-resources的字节码原理71
2.3.11对象相关的字节码指令74
2.4小结77
第3章字节码进阶78
3.1方法调用指令78
3.1.1invokestatic指令79
3.1.2invokevirtual指令79
3.1.3invokespe指令80
3.1.4invokeinterface指令80
3.1.5invokedynamic指令90
3.2Lambda表达式的原理95
3.3泛型与字节码100
3.4synchronized的实现原理102
3.5反射的实现原理106
3.5.1反射方法源码分析107
3.5.2反射的inflation机制109
3.6小结110
第4章javac编译原理简介111
4.1javac源码调试112
4.2javac的七个阶段114
4.2.1parse阶段115
4.2.2enter阶段116
4.2.3process阶段118
4.2.4attr阶段118
4.2.5flow阶段121
4.2.6desugar阶段122
4.2.7generate阶段126
4.3小结129
第5章从字节码角度看Kotlin语言130
5.1Metadata注解130
5.2顶层方法132
5.3object单例133
5.4扩展方法134
5.5接口默认方法135
5.6默认参数137
5.7不错for循环140
5.8dataclass142
5.9多返回值143
5.10协程的实现原理144
5.10.1CPS介绍145
5.10.2suspend关键字146
5.11从字节码分析Kotlin编译器的bug149
5.12小结153
第6章ASM和Javassist字节码操作工具154
6.1ASM介绍154
6.1.1ASMCoreAPI核心类156
6.1.2ASM操作字节码示例158
6.2Javassist介绍169
6.2.1Javassist核心API169
6.2.2Javassist操作字节码示例170
6.3小结174
第7章JavaInstrumentation原理175
7.1JavaInstrumentation简介175
7.2Instrumentation与-javaagent启动参数176
7.3JVMAttachAPI介绍180
7.3.1JVMAttachAPI基本使用181
7.3.2JVMAttachAPI的底层原理183
7.4小结190
第8章JSR269插件化注解处理原理191
8.1JSR269简介191
8.2抽象语法树操作API193
8.2.1Names介绍193
8.2.2JCTree介绍193
8.2.3TreeMaker介绍198
8.2.4自定义注解处理实战202
8.3JSR269在常用框架上的应用207
8.3.1案例一:ButterKnife207
8.3.2案例二:Lombok209
8.4小结212
第9章字节码的应用213
9.1cglib动态代理原理分析213
9.2字节码在Fastjson上的应用218
9.3字节码在Dubbo上的应用221
9.4字节码在JaCoCo代码覆盖率上的应用222
9.5字节码在Mock上的应用225
9.6小结227
0章软件破解和防破解228
10.1反编译228
10.2软件破解229
10.3软件防破解234
10.4小结250
1章全链路分布式跟踪与APM251
11.1全链路分布式跟踪介绍251
11.2见微知著之APM260
11.3小结273
2章Android字节码与APM274
12.1dex文件结构274
12.2Android字节码288
12.3Gradle插件编写295
12.4Android字节码注入原理297
12.5小结301
内容摘要
这是一本揭示JVM字节码“黑科技”的著作,它从原理和应用两个维度深入剖析了JVM字节码。书中内容涉及JVM字节码的大部分应用场景,如Java性能优化、软件防护与破解、APM等,通过大量实战案例讲解了它在这些场景中的实操技巧。本书共12章,从逻辑上分为两大部分。部分:原理篇(~8章)章详细剖析了class文件的内部结构;第2章介绍了字节码的概念以及Java虚拟机栈和栈帧的相关内容;第3章介绍了字节码的进阶知识,包括泛型擦除、synchronized关键字、反射的底层实现原理;第4章介绍了javac编译器的原理,以及javac编译的七大阶段和各阶段的作用;第5章从字节码的角度介绍Kotlin的常见语法糖、coroutine等原理;第6章介绍了ASM和Javassist这两个字节码操作工具;第7章介绍了JavaInstrumentation的原理;第8章介绍了JSR269插件化注解处理原理。第二部分:应用篇(第9~12章)第9章介绍了字节码在cglib、Fastjson等框架上的应用;0章介绍了反编译、破解、防破解和逆向工程的相关内容;1章介绍了APM的概况、分布式跟踪的基本原理等;2章详细介绍了Androiddex文件的组成结构,以及Android字节码指令与Java字节码指令的区别。
— 没有更多了 —
以下为对购买帮助不大的评价