定 價:¥89.00
作 者: | 李家智,張世敏 著 |
出版社: | 電子工業(yè)出版社 |
叢編項: | |
標 簽: | 暫缺 |
ISBN: | 9787121375668 | 出版時間: | 2019-11-01 | 包裝: | 平裝 |
開本: | 16 | 頁數: | 字數: |
目錄
第1章 Java代碼優(yōu)化
1.1 可優(yōu)化的代碼
1.2 性能監(jiān)控
1.3 JMH
1.3.1 使用JMH
1.3.2 JMH常用設置
1.3.3 注意事項
1.3.4 單元測試
第2章 字符串和數字操作
2.1 構造字符串
2.2 字符串拼接
2.3 字符串格式化
2.4 字符串查找
2.5 替換
2.6 intern方法
2.7 StringUtils類
2.8 前綴樹過濾
2.9 數字裝箱
2.10 BigDecimal
第3章 并發(fā)編程和異步編程
3.1 不安全的代碼
3.2 Java并發(fā)編程
3.2.1 volatile
3.2.2 synchronized
3.2.3 Lock
3.2.4 Condition
3.2.5 讀寫鎖
3.2.6 Semaphore
3.2.7 柵欄
3.3 Java并發(fā)工具
3.3.1 原子變量
3.3.2 Queue
3.3.3 Future
3.3.4 ThreadLocal
3.4 Java線程池
3.5 異步編程
3.5.1 創(chuàng)建異步任務
3.5.2 完成后回調
3.5.3 串行執(zhí)行
3.5.4 并行執(zhí)行
3.5.5 接收任務處理結果
第4章 代碼性能優(yōu)化
4.1 int轉String
4.2 使用Native方法
4.3 日期格式化
4.4 switch優(yōu)化
4.5 優(yōu)先使用局部變量
4.6 預處理
4.7 預分配
4.8 預編譯
4.9 預先編碼
4.10 謹慎使用Exception
4.11 批處理
4.12 展開循環(huán)
4.13 靜態(tài)方法調用
4.14 高速Map存取
4.15 位運算
4.16 反射
4.17 壓縮
4.18 可變數組
4.19 System.nanoTime()
4.20 ThreadLocalRandom
4.21 錯誤優(yōu)化策略
4.21.1 final無法幫助內聯
4.21.2 subString內存泄漏
4.21.3 循環(huán)優(yōu)化
4.21.4 循環(huán)中捕捉異常
第5章 高性能工具
5.1 高速緩存Caffeine
5.1.1 安裝Caffeine
5.1.2 Caffeine的基本使用方法
5.1.3 淘汰策略
5.1.4 statistics功能
5.1.5 Caffeine高命中率
5.1.6 卓越的性能
5.2 映射工具Selma
5.3 JSON工具Jackson
5.3.1 Jackson的三種使用方式
5.3.2 Jackson樹遍歷
5.3.3 對象綁定
5.3.4 流式操作
5.3.5 自定義JsonSerializer
5.3.6 集合的反序列化
5.3.7 性能提升和優(yōu)化
5.4 HikariCP
5.4.1 安裝HikariCP
5.4.2 HikariCP性能測試
5.4.3 性能優(yōu)化說明
5.5 文本處理工具Beetl
5.5.1 安裝和配置
5.5.2 腳本引擎
5.5.3 Beetl的特點
5.5.4 性能優(yōu)化
5.6 MessagePack
5.7 ReflectASM
第6章 Java注釋規(guī)范
6.1 Javadoc
6.2 Tag
6.2.1 {@link}
6.2.2 @deprecated
6.2.3 {@literal}
6.2.4 {@code}
6.2.5 {@value}
6.2.6 @author
6.2.7 @param和@return
6.2.8 @throws
6.2.9 @see
6.2.10 自動復制
6.3 Package-Info
6.4 HTML的生成
6.5 Markdown-doclet
第7章 可讀性代碼
7.1 精簡注釋
7.2 變量
7.2.1 變量命名
7.2.2 變量的位置
7.2.3 中間變量
7.3 方法
7.3.1 方法簽名
7.3.2 短方法
7.3.3 單一職責
7.4 分支
7.4.1 if else
7.4.2 switch case
7.5 發(fā)現對象
7.5.1 不要使用String
7.5.2 不要用數組、Map
7.6 checked異常(可控異常)
7.7 其他事項
7.7.1 避免自動格式化
7.7.2 關于Null
第8章 JIT優(yōu)化
8.1 解釋和編譯
8.2 C1和C2
8.3 代碼緩存
8.4 JITWatch
8.5 內聯
8.6 虛方法調用
第9章 代碼審查
9.1 ConcurrentHashMap陷阱
9.2 字符串搜索
9.3 I/O輸出
9.4 字符串拼接
9.5 方法的入參和出參
9.6 RPC調用定義的返回值
9.7 Integer的使用
9.8 排序
9.9 判斷特殊的ID
9.10 優(yōu)化if結構
9.11 文件復制
9.12 switch優(yōu)化
9.13 Encoder
9.14 一個JMH例子
9.15 注釋
9.16 完善注釋
9.17 方法抽取
9.18 遍歷Map
9.19 日期格式化
9.20 日志框架設計的問題
9.21 持久化到數據庫
9.22 某個RPC框架
9.23 循環(huán)調用
9.24 lock的使用
9.25 字符集
9.26 處理枚舉值
9.27 任務執(zhí)行
9.28 開關判斷
9.29 JDBC操作
9.30 Controller代碼
9.31 停止任務
第10章 ASM運行時增強
10.1 Java字節(jié)碼
10.1.1 基礎知識
10.1.2 .class文件的格式
10.2 Java方法的執(zhí)行
10.2.1 方法在內存中的表示
10.2.2 方法在.class文件中的表示
10.2.3 指令的分類
10.2.4 操作數棧的變化分析
10.3 Bytecode Outline插件
10.4 ASM入門
10.4.1 生成類名和構造函數
10.4.2 生成main方法
10.4.3 調用生成的代碼
10.5 ASM增強代碼
10.5.1 使用反射實現
10.5.2 使用ASM生成輔助類
10.5.3 switch語句的分類
10.5.4 獲取Bean中的property
10.5.5 switch語句的實現
10.5.6 性能對比
第11章 JSR269編譯時增強
11.1 Java編譯的過程
11.2 注解處理器入門
11.3 相關概念介紹
11.3.1 AbstractProcessor
11.3.2 Element與TypeMirror
11.4 注解處理器進階
11.4.1 JsonWriter注解
11.4.2 處理器與生成輔助類
11.4.3 使用生成的Mapper類
11.4.4 注解處理器的使用
11.5 調試注解處理器
11.5.1 在Eclipse中調試注解處理器
11.5.2 在IDEA中調試注解處理
附錄A 使用OQL分析虛擬機內存