TOP
0
0
即日起~6/30,暑期閱讀書展,好書7折起
深入理解JVM字節碼(簡體書)
滿額折

深入理解JVM字節碼(簡體書)

商品資訊

人民幣定價:89 元
定價
:NT$ 534 元
優惠價
87465
領券後再享88折起
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:13 點
相關商品
商品簡介
名人/編輯推薦
目次

商品簡介

內容介紹
這是一本揭示JVM字節碼“黑科技”的著作,它從原理和應用兩個維度深入剖析了JVM字節碼。書中內容涉及JVM字節碼的大部分應用場景,如Java性能優化、軟件防護與破解、APM等,通過大量實戰案例講解了它在這些場景中的實操技巧。
本書共 12 章,從邏輯上分為兩大部分。
第壹部分:原理篇(第1~8章)
第1章詳細剖析了class文件的內部結構;第2章介紹了字節碼的概念以及Java虛擬機棧和棧幀的相關內容;第3章介紹了字節碼的進階知識,包括泛型擦除、synchronized 關鍵字、反射的底層實現原理;第4章介紹了javac編譯器的原理,以及javac編譯的七大階段和各階段的作用;第5章從字節碼的角度介紹Kotlin的常見語法糖、coroutine 等原理;第6章介紹了ASM和Javassist這兩個字節碼操作工具;第7章介紹了Java Instrumentation的原理;第8章介紹了JSR 269 插件化注解處理原理。
第二部分:應用篇(第9~12章)
第9章介紹了字節碼在cglib、Fastjson等框架上的應用;第10章介紹了反編譯、破解、防破解和逆向工程的相關內容;第11章介紹了APM的概況、分布式跟蹤的基本原理等。第12章詳細介紹了Android dex文件的組成結構,以及Android字節碼指令與Java字節碼指令的區別。

名人/編輯推薦

上市公司高級技術經理撰寫,深入剖析JVM字節碼原理和應用,揭示Java性能優化、軟件破解、APM黑科技

目次

前 言
第1章 深入剖析 class 文件結構 1
1.1 初探 class 文件 1
1.2 class 文件結構剖析 3
1.2.1 魔數 4
1.2.2 版本號 6
1.2.3 常量池 7
1.2.4 Access flags 18
1.2.5 this_class、super_name、interfaces 19
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.5 for語句的字節碼原理 48
2.3.6 switch-case底層實現原理 54
2.3.7 String的switch-case實現的字節碼原理 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 data class 142
5.9 多返回值 143
5.10 協程的實現原理 144
5.10.1 CPS 介紹 145
5.10.2 suspend 關鍵字 146
5.11 從字節碼分析 Kotlin 編譯器的bug 149
5.12 小結 153
第6章 ASM 和 Javassist 字節碼操作工具 154
6.1 ASM 介紹 154
6.1.1 ASM Core API核心類 156
6.1.2 ASM操作字節碼示例 158
6.2 Javassist 介紹 169
6.2.1 Javassist核心API 169
6.2.2 Javassist操作字節碼示例 170
6.3 小結 174
第7章 Java Instrumentation 原理 175
7.1 Java Instrumentation 簡介 175
7.2 Instrumentation 與 -javaagent啟動參數 176
7.3 JVM Attach API 介紹 180
7.3.1 JVM Attach API基本使用 181
7.3.2 JVM Attach API的底層原理 183
7.4 小結 190
第8章 JSR 269 插件化注解處理原理 191
8.1 JSR 269 簡介 191
8.2 抽象語法樹操作 API 193
8.2.1 Names介紹 193
8.2.2 JCTree介紹 193
8.2.3 TreeMaker介紹 198
8.2.4 自定義注解處理實戰 202
8.3 JSR 269 在常用框架上的應用 207
8.3.1 案例一:ButterKnife 207
8.3.2 案例二:Lombok 209
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 自定義ClassLoader 234
10.3.2 JNI隱藏核心邏輯 237
10.3.3 基於JVMTI的加密方案 239
10.3.4 混淆 245
10.4 小結 250
第11章 全鏈路分布式跟蹤與APM 251
11.1 全鏈路分布式跟蹤介紹 251
11.1.1 什麼是全鏈路分布式跟蹤 252
11.1.2 OpenTracing基本術語 253
11.1.3 分布式跟蹤的實現和上下文傳遞 254
11.2 見微知著之 APM 260
11.2.1 APM基本概念 260
11.2.2 APM的字節碼注入實現 261
11.2.3 其他平臺的APM實現 272
11.3 小結 273
第12章 Android字節碼與 APM 274
12.1 dex 文件結構 274
12.1.1 header 276
12.1.2 string_ids 278
12.1.3 type_ids 280
12.1.4 proto_ids 281
12.1.5 field_ids 282
12.1.6 method_ids 283
12.1.7 class_defs 284
12.1.8 data 288
12.1.9 link_data 288
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 Transform API介紹 297
12.4.2 字節碼注入代碼實現 299
12.5 小結 301

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 465
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區