注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)Java系統(tǒng)性能優(yōu)化實(shí)戰(zhàn)

Java系統(tǒng)性能優(yōu)化實(shí)戰(zhàn)

Java系統(tǒng)性能優(yōu)化實(shí)戰(zhàn)

定 價(jià):¥89.00

作 者: 李家智,張世敏 著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787121375668 出版時(shí)間: 2019-11-01 包裝: 平裝
開(kāi)本: 16 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  《Java系統(tǒng)性能優(yōu)化實(shí)戰(zhàn)》基于作者在實(shí)際工作中遇到的與系統(tǒng)相關(guān)的問(wèn)題及解決之道,通過(guò)改善代碼來(lái)提高系統(tǒng)性能,解決因?yàn)榇a導(dǎo)致的系統(tǒng)故障。本書介紹了如何在系統(tǒng)中運(yùn)用高性能開(kāi)源工具,以及代碼優(yōu)化和設(shè)計(jì)技巧來(lái)提升性能。另外,如何編寫維護(hù)性強(qiáng)的代碼也在本書的寫作范疇內(nèi)。本書還介紹了一些底層技術(shù),比如Java字節(jié)碼、ASM和JSR269,這些技術(shù)同樣可以運(yùn)用在項(xiàng)目中,以輔助提升性能和方便維護(hù)代碼。 《Java系統(tǒng)性能優(yōu)化實(shí)戰(zhàn)》是一本Java開(kāi)發(fā)規(guī)范和系統(tǒng)性能優(yōu)化指南,從高性能、易維護(hù)、代碼增強(qiáng),以及在微服務(wù)系統(tǒng)中編寫Java代碼的角度來(lái)描述如何實(shí)現(xiàn)高性能Java系統(tǒng)。書中的大部分例子都是從作者所在傳統(tǒng)企業(yè)應(yīng)用,以及高并發(fā)系統(tǒng)中摘錄而來(lái)的,極具參考意義。 《Java系統(tǒng)性能優(yōu)化實(shí)戰(zhàn)》適合中高級(jí)程序員和架構(gòu)師,以及有志從事基礎(chǔ)技術(shù)研發(fā)、開(kāi)源工具研發(fā)的極客閱讀。本書涉及的知識(shí)面比較廣泛,也可以作為Java筆試和面試的參考書籍。

作者簡(jiǎn)介

  李家智:網(wǎng)名閑大賦,曾在電信行業(yè)、金融行業(yè)和互聯(lián)網(wǎng)電商行業(yè)任職資深架構(gòu)師。從事軟件開(kāi)發(fā)近20年,致力于Java和Java EE系統(tǒng)的架構(gòu)和實(shí)現(xiàn)。張世敏:目前就職于東方金科,7年Java軟件開(kāi)發(fā)經(jīng)驗(yàn),喜歡參與開(kāi)源項(xiàng)目,熱衷于探索新的技術(shù)。

圖書目錄

目錄

第1章 Java代碼優(yōu)化

1.1 可優(yōu)化的代碼

1.2 性能監(jiān)控

1.3 JMH

1.3.1 使用JMH

1.3.2 JMH常用設(shè)置

1.3.3 注意事項(xiàng)

1.3.4 單元測(cè)試

第2章 字符串和數(shù)字操作

2.1 構(gòu)造字符串

2.2 字符串拼接

2.3 字符串格式化

2.4 字符串查找

2.5 替換

2.6 intern方法

2.7 StringUtils類

2.8 前綴樹(shù)過(guò)濾

2.9 數(shù)字裝箱

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)建異步任務(wù)

3.5.2 完成后回調(diào)

3.5.3 串行執(zhí)行

3.5.4 并行執(zhí)行

3.5.5 接收任務(wù)處理結(jié)果

第4章 代碼性能優(yōu)化

4.1 int轉(zhuǎn)String

4.2 使用Native方法

4.3 日期格式化

4.4 switch優(yōu)化

4.5 優(yōu)先使用局部變量

4.6 預(yù)處理

4.7 預(yù)分配

4.8 預(yù)編譯

4.9 預(yù)先編碼

4.10 謹(jǐn)慎使用Exception

4.11 批處理

4.12 展開(kāi)循環(huán)

4.13 靜態(tài)方法調(diào)用

4.14 高速M(fèi)ap存取

4.15 位運(yùn)算

4.16 反射

4.17 壓縮

4.18 可變數(shù)組

4.19 System.nanoTime()

4.20 ThreadLocalRandom

4.21 錯(cuò)誤優(yōu)化策略

4.21.1 final無(wú)法幫助內(nèi)聯(lián)

4.21.2 subString內(nèi)存泄漏

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樹(shù)遍歷

5.3.3 對(duì)象綁定

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性能測(cè)試

5.4.3 性能優(yōu)化說(shuō)明

5.5 文本處理工具Beetl

5.5.1 安裝和配置

5.5.2 腳本引擎

5.5.3 Beetl的特點(diǎn)

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 自動(dòng)復(fù)制

6.3 Package-Info

6.4 HTML的生成

6.5 Markdown-doclet

第7章 可讀性代碼

7.1 精簡(jiǎn)注釋

7.2 變量

7.2.1 變量命名

7.2.2 變量的位置

7.2.3 中間變量

7.3 方法

7.3.1 方法簽名

7.3.2 短方法

7.3.3 單一職責(zé)

7.4 分支

7.4.1 if else

7.4.2 switch case

7.5 發(fā)現(xiàn)對(duì)象

7.5.1 不要使用String

7.5.2 不要用數(shù)組、Map

7.6 checked異常(可控異常)

7.7 其他事項(xiàng)

7.7.1 避免自動(dòng)格式化

7.7.2 關(guān)于Null

第8章 JIT優(yōu)化

8.1 解釋和編譯

8.2 C1和C2

8.3 代碼緩存

8.4 JITWatch

8.5 內(nèi)聯(lián)

8.6 虛方法調(diào)用

第9章 代碼審查

9.1 ConcurrentHashMap陷阱

9.2 字符串搜索

9.3 I/O輸出

9.4 字符串拼接

9.5 方法的入?yún)⒑统鰠?/p>

9.6 RPC調(diào)用定義的返回值

9.7 Integer的使用

9.8 排序

9.9 判斷特殊的ID

9.10 優(yōu)化if結(jié)構(gòu)

9.11 文件復(fù)制

9.12 switch優(yōu)化

9.13 Encoder

9.14 一個(gè)JMH例子

9.15 注釋

9.16 完善注釋

9.17 方法抽取

9.18 遍歷Map

9.19 日期格式化

9.20 日志框架設(shè)計(jì)的問(wèn)題

9.21 持久化到數(shù)據(jù)庫(kù)

9.22 某個(gè)RPC框架

9.23 循環(huán)調(diào)用

9.24 lock的使用

9.25 字符集

9.26 處理枚舉值

9.27 任務(wù)執(zhí)行

9.28 開(kāi)關(guān)判斷

9.29 JDBC操作

9.30 Controller代碼

9.31 停止任務(wù)

第10章 ASM運(yùn)行時(shí)增強(qiáng)

10.1 Java字節(jié)碼

10.1.1 基礎(chǔ)知識(shí)

10.1.2 .class文件的格式

10.2 Java方法的執(zhí)行

10.2.1 方法在內(nèi)存中的表示

10.2.2 方法在.class文件中的表示

10.2.3 指令的分類

10.2.4 操作數(shù)棧的變化分析

10.3 Bytecode Outline插件

10.4 ASM入門

10.4.1 生成類名和構(gòu)造函數(shù)

10.4.2 生成main方法

10.4.3 調(diào)用生成的代碼

10.5 ASM增強(qiáng)代碼

10.5.1 使用反射實(shí)現(xiàn)

10.5.2 使用ASM生成輔助類

10.5.3 switch語(yǔ)句的分類

10.5.4 獲取Bean中的property

10.5.5 switch語(yǔ)句的實(shí)現(xiàn)

10.5.6 性能對(duì)比

第11章 JSR269編譯時(shí)增強(qiáng)

11.1 Java編譯的過(guò)程

11.2 注解處理器入門

11.3 相關(guān)概念介紹

11.3.1 AbstractProcessor

11.3.2 Element與TypeMirror

11.4 注解處理器進(jìn)階

11.4.1 JsonWriter注解

11.4.2 處理器與生成輔助類

11.4.3 使用生成的Mapper類

11.4.4 注解處理器的使用

11.5 調(diào)試注解處理器

11.5.1 在Eclipse中調(diào)試注解處理器

11.5.2 在IDEA中調(diào)試注解處理

附錄A 使用OQL分析虛擬機(jī)內(nèi)存

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)