TOP
紅利積點抵現金,消費購書更貼心
Java程序性能優化實戰(簡體書)
滿額折

Java程序性能優化實戰(簡體書)

商品資訊

人民幣定價:119 元
定價
:NT$ 714 元
優惠價
87621
海外經銷商無庫存,到貨日平均30天至45天
下單可得紅利積點 :18 點
商品簡介
名人/編輯推薦
目次

商品簡介

本書以Java性能調優為主線,系統地闡述了與Java性能優化相關的知識與技巧。本書共6章,先後從軟件設計、軟件編碼、JVM調優及程序故障排除等方面介紹針對Java程序的優化方法。第1章介紹性能的基本概念、木桶原理與Amdahl定律、系統調優的過程和注意事項;第2章從設計層面介紹與性能相關的設計模式及常用優化組件;第3章從代碼層面介紹如何編寫高性能的Java程序;第4章介紹並進行開發和如何通過多線程提高系統性能;第5章立足於JVM虛擬機層面,介紹如何通過設置合理的JVM參數提升Java程序的性能;第6章為工具篇,介紹了獲取和監控程序或系統性能指標的各種工具,包括相關的故障排查工具。本書適合所有Java程序員、軟件設計師、架構師及軟件開發愛好者,對於有一定經驗的Java工程師,本書更能幫助他突破技術瓶頸,深入Java內核開發!

名人/編輯推薦

資深程序員深度分享Java程序性能優化的寶貴經驗,從軟件設計、編碼和JVM等維度闡述性能優化的方法和技巧

目次

前言
第1章 Java性能調優概述1
1.1 性能概述1
1.1.1 看懂程序的性能1
1.1.2 性能的參考指標2
1.1.3 木桶原理與性能瓶頸2
1.1.4 Amdahl定律3
1.2 性能調優的層次5
1.2.1 設計調優5
1.2.2 代碼調優6
1.2.3 JVM調優6
1.2.4 數據庫調優6
1.2.5 操作系統調優7
1.3 基本調優策略和手段7
1.3.1 優化的一般步驟8
1.3.2 系統優化的注意事項8
1.4 小結9
第2章 設計優化10
2.1 善用設計模式10
2.1.1 單例模式10
2.1.2 代理模式15
2.1.3 享元模式24
2.1.4 裝飾者模式28
2.1.5 觀察者模式34
2.1.6 值對象模式38
2.1.7 業務代理模式41
2.2 常用的優化組件和方法44
2.2.1 緩衝44
2.2.2 緩存47
2.2.3 對象複用――池51
2.2.4 並行替代串行58
2.2.5 負載均衡58
2.2.6 時間換空間63
2.2.7 空間換時間64
2.3 小結66
第3章 Java程序優化67
3.1 字符串優化處理67
3.1.1 String對象及其特點67
3.1.2 substring()方法的內存洩漏69
3.1.3 字符串分割和查找72
3.1.4 StringBuffer和StringBuilder76
3.1.5 CompactStrings優化字符串存儲80
3.2 核心數據結構81
3.2.1 List接口81
3.2.2 Map接口88
3.2.3 Set接口100
3.2.4 優化集合訪問代碼101
3.2.5 RandomAccess接口103
3.3 使用NIO提升性能105
3.3.1 NIO中的Buffer類族和Channel106
3.3.2 Buffer的基本原理107
3.3.3 Buffer的相關操作109
3.3.4 MappedByteBuffer性能評估116
3.3.5 直接訪問內存119
3.4 引用類型121
3.4.1 強引用121
3.4.2 軟引用122
3.4.3 弱引用123
3.4.4 虛引用124
3.4.5 WeakHashMap類及其實現127
3.5 性能測試工具JMH129
3.5.1 JMH之Hello World130
3.5.2 JMH之指定測量模式131
3.5.3 JMH之對象作用域134
3.5.4 JMH之代碼消除135
3.6 有助於改善性能的技巧137
3.6.1 使用局部變量137
3.6.2 位運算代替乘除法138
3.6.3 替換switch139
3.6.4 一維數組代替二維數組141
3.6.5 提取表達式142
3.6.6 展開循環143
3.6.7 布爾運算代替位運算144
3.6.8 使用arrayCopy()145
3.6.9 使用Buffer進行I/O操作147
3.6.10 使用clone()代替new149
3.6.11 慎用Java函數式編程151
3.7 小結152
第4章 並行程序開發及優化153
4.1 並行程序設計模式153
4.1.1 Future模式153
4.1.2 Master-Worker模式161
4.1.3 Guarded Suspension模式165
4.1.4 不變模式172
4.1.5 生產者-消費者模式174
4.2 JDK多任務執行框架178
4.2.1 無限制線程的缺陷178
4.2.2 簡單的線程池實現179
4.2.3 Executor框架183
4.2.4 自定義線程池185
4.2.5 優化線程池大小189
4.2.6 擴展ThreadPoolExecutor189
4.3 JDK併發數據結構191
4.3.1 併發List191
4.3.2 併發Set193
4.3.3 併發Map194
4.3.4 併發Queue195
4.3.5 併發Deque197
4.4 併發控制方法199
4.4.1 Java內存模型與volatile199
4.4.2 同步關鍵字synchronized203
4.4.3 重入鎖205
4.4.4 讀寫鎖207
4.4.5 讀寫鎖的改進:StampedLock209
4.4.6 Condition對象210
4.4.7 信號量212
4.4.8 線程局部變量ThreadLocal214
4.5 鎖的性能和優化215
4.5.1 線程的開銷215
4.5.2 避免死鎖215
4.5.3 減少鎖持有時間219
4.5.4 減小鎖粒度220
4.5.5 讀寫分離鎖來替換獨佔鎖221
4.5.6 鎖分離222
4.5.7 重入鎖和內部鎖224
4.5.8 鎖粗化224
4.5.9 自旋鎖226
4.5.10 鎖消除226
4.5.11 鎖偏向227
4.6 無鎖的並行計算228
4.6.1 非阻塞的同步/無鎖228
4.6.2 原子操作228
4.6.3 Amino框架簡介231
4.6.4 Amino集合231
4.6.5 Amino樹236
4.6.6 Amino圖237
4.6.7 Amino簡單調度模式238
4.7 協程240
4.7.1 協程的概念240
4.7.2 Kilim框架簡介241
4.7.3 Task及其狀態242
4.7.4 Fiber及其狀態242
4.7.5 Kilim開發環境配置243
4.7.6 Kilim之Hello World244
4.7.7 多任務通信246
4.7.8 Kilim實例及性能評估247
4.8 小結250
第5章 JVM調優251
5.1 Java虛擬機內存模型251
5.1.1 程序計數器251
5.1.2 Java虛擬機棧252
5.1.3 本地方法棧258
5.1.4 Java堆258
5.1.5 方法區260
5.2 JVM內存分配參數263
5.2.1 設置最大堆內存264
5.2.2 設置最小堆內存264
5.2.3 設置新生代266
5.2.4 設置持久代266
5.2.5 設置線程棧267
5.2.6 堆的比例分配269
5.2.7 堆分配參數總結270
5.3 垃圾收集基礎271
5.3.1 垃圾收集的作用272
5.3.2 垃圾回收算法與思想272
5.3.3 垃圾回收器的類型277
5.3.4 評價GC策略的指標278
5.3.5 新生代串行回收器278
5.3.6 老年代串行回收器279
5.3.7 並行回收器280
5.3.8 新生代並行回收器281
5.3.9 老年代並行回收器282
5.3.10 CMS回收器282
5.3.11 G1回收器285
5.3.12 Stop the World案例286
5.3.13 垃圾回收器對系統性能的影響288
5.3.14 GC操作相關參數總結289
5.4 常用調優案例和方法291
5.4.1 將新對象預留在新生代291
5

購物須知

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

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

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

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

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

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

暢銷榜

客服中心

收藏

會員專區