日本免费精品视频,男人的天堂在线免费视频,成人久久久精品乱码一区二区三区,高清成人爽a毛片免费网站

在線客服
Java程序性能優化:讓你的Java程序更快、更穩定圖書
人氣:78

Java程序性能優化:讓你的Java程序更快、更穩定

【7次印刷,暢銷16000冊,廣受讀者好評,經典之作,Java程序員進階必讀。榮獲“讀者喜愛的原創IT技術圖書獎”。深入剖析軟件設計層面、代碼層面、JVM虛擬機層面的優化方法】

內容簡介

Java是目前應用最為廣泛的軟件開發平臺,學習針對Java程序的優化方法有重要的現實意義?!禞ava程序性能優化:讓你的Java程序更快、更穩定》以Java性能調優為主線,系統地闡述了與Java性能優化相關的知識與技巧。

本書共6章,先后從軟件設計、軟件編碼、JVM調優以及程序故障排斥等方面介紹針對Java程序的優化方法。第1章介紹性能的基本概念、定律、系統調優的過程和注意事項。第2章從設計層面介紹與性能相關的設計模式、組件。第3章從代碼層面介紹如何編寫高性能的Java程序。第4章介紹了并行開發和如何通過多線程提高系統性能。第5章立足于JVM虛擬機層面,介紹如何通過設置合理的JVM參數提升Java程序的性能。第6章為工具篇,介紹了獲取和監控程序或系統性能指標的各種工具,包括相關的故障排查工具。

本書適合所有Java程序員、軟件設計師、架構師以及軟件開發愛好者,對于有一定經驗的Java工程師,本書更能幫助他突破技術瓶頸,深入Java內核開發!

編輯推薦

Java程序員進階必讀經典,累計6次印刷,榮獲51CTO讀書頻道"受讀者喜愛的原創IT技術圖書獎"

數千讀者好評,上萬讀者的選擇,數萬Java愛好者和程序員受益匪淺!

一個的程序員,不僅要會編寫程序,更要會編寫高質量的程序,感受Java開發中的大智慧,讓你的Java程序更優美

專注于Java應用程序的優化方法、技巧和思想,深入剖析軟件設計層面、代碼層面、JVM虛擬機層面的優化方法

理論結合實際,使用豐富的示例幫助讀者理解理論知識

精品圖書推薦(請點叢書鏈接查看)

《Java編程實戰寶典+Java程序性能優化(套裝全2冊)》

《Java入門123——一個老鳥的Java學習心得(二維碼版)》

《Java編程手記:從實踐中學習Java》

《Java編程實戰寶典》

《Java趣味編程100例》 《Java Web編程實戰寶典——JSP+Servlet+Struts 2+Hibernate+Spring+Ajax》

《我和數學有約——趣味數學及算法解析》

《程序員的數學思維修煉(趣味解讀)》

作者簡介

葛一鳴,畢業于浙江工業大學,獲得了計算機軟件與理論專業碩士學位。取得了國家認證系統分析師職稱、OCP(Oracle數據庫認證專家)?,F就職于UT斯達康通訊有限公司,從事Java軟件開發。有多年的軟件開發經驗,參與開發過多個軟件項目。熟悉Java、PHP、MySQL、Oracle等開發語言和數據庫,對Java軟件開發、性能優化、分布式軟件有著濃厚的興趣和深入的研究。在校期間曾經發表過多篇技術論文。

目錄

第1章 Java性能調優概述

1.1 性能概述

1.1.1 看懂程序的性能

1.1.2 性能的參考指標

1.1.3 木桶原理與性能瓶頸

1.1.4 Amdahl定律

1.2 性能調優的層次

1.2.1 設計調優

1.2.2 代碼調優

1.2.3 JVM調優

1.2.4 數據庫調優

1.2.5 操作系統調優

1.3 基本調優策略和手段

1.3.1 優化的一般步驟

1.3.2 系統優化注意事項

1.4 小結

第2章 設計優化

2.1 善用設計模式

2.1.1 單例模式

2.1.2 模式

2.1.3 享元模式

2.1.4 裝飾者模式

2.1.5 觀察者模式

2.1.6 Value Object模式

2.1.7 業務模式

2.2 常用優化組件和方法

2.2.1 緩沖(Buffer)

2.2.2 緩存(Cache)

2.2.3 對象復用——"池"

2.2.4 并行替代串行

2.2.5 負載均衡

2.2.6 時間換空間

2.2.7 空間換時間

2.3 小結

第3章 Java程序優化

3.1 字符串優化處理

3.1.1 String對象及其特點

3.1.2 subString()方法的內存泄漏

3.1.3 字符串分割和查找

3.1.4 StringBuffer和StringBuilder

3.2 核心數據結構

3.2.1 List接口

3.2.2 Map接口

3.2.3 Set接口

3.2.4 優化集合訪問代碼

3.2.5 RandomAccess接口

3.3 使用NIO提升性能

3.3.1 NIO的Buffer類族和Channel

3.3.2 Buffer的基本原理

3.3.3 Buffer的相關操作

3.3.4 MappedByteBuffer性能評估

3.3.5 直接內存訪問

3.4 引用類型

3.4.1 強引用

3.4.2 軟引用

3.4.3 弱引用

3.4.4 虛引用

3.4.5 WeakHashMap類及其實現

3.5 有助于改善性能的技巧

3.5.1 慎用異常

3.5.2 使用局部變量

3.5.3 位運算代替乘除法

3.5.4 替換switch

3.5.5 一維數組代替二維數組

3.5.6 提取表達式

3.5.7 展開循環

3.5.8 布爾運算代替位運算

3.5.9 使用arrayCopy ()

3.5.10 使用Buffer進行I/O操作

3.5.11 使用clone()代替new

3.5.12 靜態方法替代實例方法

3.6 小結

第4章 并行程序開發及優化

4.1 并行程序設計模式

4.1.1 Future模式

4.1.2 Master-Worker模式

4.1.3 Guarded Suspension模式

4.1.4 不變模式

4.1.5 生產者-消費者模式

4.2 JDK多任務執行框架

4.2.1 無限制線程的缺陷

4.2.2 簡單的線程池實現

4.2.3 Executor框架

4.2.4 自定義線程池

4.2.5 優化線程池大小

4.2.6 擴展ThreadPoolExecutor

4.3 JDK并發數據結構

4.3.1 并發List

4.3.2 并發Set

4.3.3 并發Map

4.3.4 并發Queue

4.3.5 并發Deque

4.4 并發控制方法

4.4.1 Java內存模型與volatile

4.4.2 同步關鍵字synchronized

4.4.3 ReentrantLock重入鎖

4.4.4 ReadWriteLock讀寫鎖

4.4.5 Condition對象

4.4.6 Semaphore信號量

4.4.7 ThreadLocal線程局部變量

4.5 "鎖"的性能和優化

4.5.1 線程的開銷

4.5.2 避免死鎖

4.5.3 減小鎖持有時間

4.5.4 減小鎖粒度

4.5.5 讀寫分離鎖來替換獨占鎖

4.5.6 鎖分離

4.5.7 重入鎖ReentrantLock和內部鎖synchronized

4.5.8 鎖粗化(Lock Coarsening)

4.5.9 自旋鎖(Spinning Lock)

4.5.10 鎖消除(Lock Elimination)

4.5.11 鎖偏向(Biased Lock)

4.6 無鎖的并行計算

4.6.1 非阻塞的同步/無鎖

4.6.2 原子操作

4.6.3 Amino框架介紹

4.6.4 Amino集合

4.6.5 Amino樹

4.6.6 Amino圖

4.6.7 Amino簡單調度模式

4.7 協程

4.7.1 協程的概念

4.7.2 Kilim框架簡介

4.7.3 Task及其狀態

4.7.4 Fiber及其狀態

4.7.5 Kilim開發環境配置

4.7.6 Kilim之Hello World

4.7.7 多任務通信

4.7.8 Kilim實例及性能評估

4.8 小結

第5章 JVM調優

5.1 Java虛擬機內存模型

5.1.1 程序計數器

5.1.2 Java虛擬機棧

5.1.3 本地方法棧

5.1.4 Java堆

5.1.5 方法區

5.2 JVM內存分配參數

5.2.1 設置較大堆內存

5.2.2 設置最小堆內存

5.2.3 設置新生代

5.2.4 設置持久代

5.2.5 設置線程桟

5.2.6 堆的比例分配

5.2.7 堆分配參數總結

5.3 垃圾收集基礎

5.3.1 垃圾收集的作用

5.3.2 垃圾回收算法與思想

5.3.3 垃圾收集器的類型

5.3.4 評價GC策略的指標

5.3.5 新生代串行收集器

5.3.6 老年代串行收集器

5.3.7 并行收集器

5.3.8 新生代并行回收(Parallel Scavenge)收集器

5.3.9 老年代并行回收收集器

5.3.10 CMS收集器

5.3.11 G1收集器(Garbage First)

5.3.12 Stop the World案例

5.3.13 收集器對系統性能的影響

5.3.14 GC相關參數總結

5.4 常用調優案例和方法

5.4.1 將新對象預留在新生代

5.4.2 大對象進入老年代

5.4.3 設置對象進入老年代的年齡

5.4.4 穩定與震蕩的堆大小

5.4.5 吞吐量優先案例

5.4.6 使用大頁案例

5.4.7 降低停頓案例

5.5 實用JVM參數

5.5.1 JIT編譯參數

5.5.2 堆快照(堆Dump)

5.5.3 錯誤處理

5.5.4 取得GC信息

5.5.5 類和對象跟蹤

5.5.6 控制GC

5.5.7 選擇類校驗器

5.5.8 Solaris下線程控制

5.5.9 使用大頁

5.5.10 壓縮指針

5.6 實戰JVM調優

5.6.1 Tomcat簡介與啟動加速

5.6.2 Web應用程序介紹

5.6.3 JMeter介紹與使用

5.6.4 調優前Web應用運行狀況

5.6.5 調優過程

5.7 總結

第6章 Java性能調優工具

6.1 Linux命令行工具

6.1.1 top命令

6.1.2 sar命令

6.1.3 vmstat命令

6.1.4 iostat命令

6.1.5 pidstat工具

6.2 Windows工具

6.2.1 任務管理器

6.2.2 perfmon性能監控工具

6.2.3 Process Explorer

6.2.4 pslist命令行

6.3 JDK命令行工具

6.3.1 jps命令

6.3.2 jstat命令

6.3.3 jinfo命令

6.3.4 jmap命令

6.3.5 jhat命令

6.3.6 jstack命令

6.3.7 jstatd命令

6.3.8 hprof工具

6.4 JConsole工具

6.4.1 JConsole連接Java程序

6.4.2 Java程序概況

6.4.3 內存監控

6.4.4 線程監控

6.4.5 類加載情況

6.4.6 虛擬機信息

6.4.7 MBean管理

6.4.8 使用插件

6.5 Visual VM多合一工具

6.5.1 Visual VM連接應用程序

6.5.2 監控應用程序概況

6.5.3 Thread Dump和分析

6.5.4 性能分析

6.5.5 快照

6.5.6 內存快照分析

6.5.7 MBean管理

6.5.8 TDA使用

6.5.9 BTrace介紹

6.6 Visual VM對OQL的支持

6.6.1 Visual VM的OQL基本語法

6.6.2 內置heap對象

6.6.3 對象函數

6.6.4 集合/統計函數

6.6.5 程序化OQL

6.7 MAT內存分析工具

6.7.1 初識MAT

6.7.2 淺堆和深堆

6.7.3 支配樹(Dominator Tree)

6.7.4 垃圾回收根

6.7.5 內存泄露檢測

6.7.6 較大對象報告

6.7.7 查找支配者

6.7.8 線程分析

6.7.9 集合使用情況分析

6.7.10 擴展MAT

6.8 MAT對OQL的支持

6.8.1 Select子句

6.8.2 From子句

6.8.3 Where子句

6.8.4 內置對象與方法

6.9 JProfile簡介

6.9.1 JProfile使用配置

6.9.2 內存視圖

6.9.3 堆快照

6.9.4 CPU視圖

6.9.5 線程視圖

6.9.6 JVM統計信息

6.9.7 觸發器

6.10 小結

在線預覽

第1章Java性能調優概述

本章對性能優化技術進行整體性的介紹,讓讀者了解性能的概念和性能優化的基本思路與方法。掌握這些內容,有助于讀者對性能問題進行系統性的分析。

本章涉及的主要知識點有:

評價性能的主要指標;

木桶原理的概念及其在性能優化中的應用;

Amdahl定律的含義;

性能調優的層次;

系統優化的一般步驟和注意事項。

1.1性能概述

為什么程序總是那么慢?它現在到底在干什么?時間都花到哪里去了?也許,你經常會抱怨這些問題。如果是這樣,那說明你的程序出了性能問題。和功能性問題相比,性能問題在有些情況下,可能并不算什么太大的問題,將就將就,也就過去了。但是,嚴重的性能問題會導致程序癱瘓、假死,直至奔潰。本節就先來認識性能的各種表現和指標。

1.1.1看懂程序的性能

對客戶端程序而言,拙劣的性能會嚴重影響用戶體驗。界面停頓、抖動、響應遲鈍等問題會遭到用戶不停的抱怨。一個典型的例子就是EclipseIDE工具在FullGC時會出現程序假死現象,相信一定被不少開發人員所詬病。對于服務器程序來說,性能問題則更為重要,相信不少后臺服務器軟件都有各自的性能目標。以Web服務器為例,服務器的響應時間、吞吐量就是兩個重要的性能參數。當服務器承受巨大的訪問壓力時,可能出現響應時間變長、吞吐量下降,甚至是拋出內存溢出異常而崩潰。這些問題,都是性能調優需要解決的。

一般來說,程序的性能通過以下幾個方面來表現:

執行速度:程序的反映是否迅速,響應時間是否足夠短。

內存分配:內存分配是否合理,是否過多地消耗內存或者存在泄漏。

啟動時間:程序從運行到可以正常處理業務需要花費多長時間。

負載承受能力:當系統壓力上升時,系統的執行速度、響應時間的上升曲線是否平緩。

1.1.2性能的參考指標

為了能夠科學地進行性能分析,對性能指標進行定量評測是非常重要的。目前,一些可以用于定量評測的性能指標有:

執行時間:一段代碼從開始運行到運行結束,所使用的時間。

CPU時間:函數或者線程占用CPU的時間。

內存分配:程序在運行時占用的內存空間。

磁盤吞吐量:描述I/O的使用情況。

網絡吞吐量:描述網絡的使用情況。

響應時間:系統對某用戶行為或者事件做出響應的時間。響應時間越短,性能越好。

1.1.3木桶原理與性能瓶頸

木桶原理又稱"短板理論",其核心思想是:一只木桶盛水的多少,并不取決于桶壁上較高的那塊木塊,而是取決于桶壁上最短的那塊,如圖1.1所示。

圖1.1木桶原理示意圖

將這個理論應用到系統性能優化上,可以這么理解,即使系統擁有充足的內存資源和CPU資源,但是如果磁盤I/O性能低下,那么系統的總體性能是取決于當前最慢的磁盤I/O速度,而不是當前越的CPU或者內存。在這種情況下,如果需要進一步提升系統性能,優化內存或者CPU資源是毫無用處的。只有提高磁盤I/O性能才能對系統的整體性能進行優化。而此時,磁盤I/O就是系統的性能瓶頸。

·注意:根據木桶原理,系統的最終性能取決于系統中性能表現最差的組件。因此,為了提升系統整體性能,必須對系統中表現最差的組件進行優化,而不是對系統中表現良好的組件進行優化。

根據應用的特點不同,任何計算機資源都有可能成為系統瓶頸。其中,最有可能成為系統瓶頸的計算資源如下。

磁盤I/O:由于磁盤I/O讀寫的速度要比內存慢很多,程序在運行過程中,如果需要等待磁盤I/O完成,那么低效的I/O操作會拖累整個系統。

網絡操作:對網絡數據進行讀寫的情況與磁盤I/O類似。由于網絡環境的不確定性,尤其是對互聯網上數據的讀寫,網絡操作的速度可能比本地磁盤I/O更慢。因此,如不加特殊處理,也極可能成為系統瓶頸。

CPU:對計算資源要求較高的應用,由于其長時間、不間斷地大量占用CPU資源,那么對CPU的爭奪將導致性能問題。如科學計算、3D渲染等對CPU需求旺盛的應用。

異常:對Java應用來說,異常的捕獲和處理是非常消耗資源的。如果程序高頻率地進行異常處理,則整體性能便會有明顯下降。

數據庫:大部分應用程序都離不開數據庫,而海量數據的讀寫操作可能是相當費時的。而應用程序可能需要等待數據庫操作完成或者返回請求的結果集,那么緩慢的同步操作將成為系統瓶頸。

鎖競爭:對高并發程序來說,如果存在激烈的鎖競爭,無疑是對性能極大的打擊。鎖競爭將會明顯增加線程上下文切換的開銷。而且,這些開銷都是與應用需求無關的系統開銷,白白占用寶貴的CPU資源,卻不帶來任何好處。

內存:一般來說,只要應用程序設計合理,內存在讀寫速度上不太可能成為性能瓶頸。除非應用程序進行了高頻率的內存交換和掃描,但這些情況比較少見。使內存制約系統性能的最可能的情況是內存大小不足。與磁盤相比,內存的大小似乎小的可憐,這意味著應用軟件只能盡可能將常用的核心數據讀入內存,這在一定程度上降低了系統性能。

1.1.4Amdahl定律

Amdahl定律是計算機科學中非常重要的定律,它定義了串行系統并行化后加速比的計算公式和理論上限。

加速比定義:加速比=優化前系統耗時/優化后系統耗時

所謂加速比,就是優化前的耗時與優化后耗時的比值。加速比越高,表明優化效果越明顯。

Amdahl定律給出了加速比與系統并行度和處理器數量的關系。設加速比為Speedup,系統內必須串行化的程序比重為F,CPU處理器數量為N,則有:

根據這個公式,如果CPU處理器數量趨于無窮,那么加速比與系統的串行化率成反比,如果系統中必須有50%的代碼串行執行,那么系統的較大加速比為2。

假設有一程序分為以下步驟執行,每個執行步驟花費100個時間單位。其中,只有步驟2和步驟5可以進行并行,步驟1、3、4必須串行,如圖1.2所示。在全串行的情況下,系統合計耗時500個時間單位。

圖1.2串行工作流程

若將步驟2和步驟5并行化,假設在雙核處理上,則有如圖1.3所示的處理流程。在這種情況下,步驟2和步驟5的耗時將為50個是單位。故系統整體耗時為400個時間單位。根據加速比的定義有:

加速比=優化前系統耗時/優化后系統耗時=500/400=1.25

或者前文中給出的加速比公式。由于5個步驟中,3個步驟必須串行,因此其串行化比重為3/5=0.6,即F=0.6,且雙核處理器的處理器個數N為2。代入公式得:

加速比=1/(0.6+(1-0.6)/2)=1.25

圖1.3雙核處理上的并行化

在極端情況下,假設并行處理器個數為無窮大,則有如圖1.4所示的處理過程。步驟2和步驟5的處理時間趨于0。即使這樣,系統整體耗時依然大于300個時間單位。即加速比的極限為500/300=1.67。

圖1.4極端情況下的并行化

使用加速比計算公式,N趨于無窮大,有Speedup=1/F,且F=0.6,故有Speedup=1.67。

由此可見,為了提高系統的速度,僅增加CPU處理器的數量并不一定能起到有效的作用,需要從根本上修改程序的串行行為,提高系統內可并行化的模塊比重,在此基礎上,合理增加并行處理器數量,才能以最小的投入,得到較大的加速比。

注意:根據Amdahl定律,使用多核CPU對系統進行優化,優化的效果取決于CPU的數量以及系統中的串行化程序的比重。CPU數量越多,串行化比重越低,則優化效果越好。僅提高CPU數量而不降低程序的串行化比重,也無法提高系統性能。

1.2性能調優的層次

為了提升系統性能,開發人員可以從系統的各個角度和層次對系統進行優化。除了最常見的代碼優化外,在軟件架構上、JVM虛擬機層、數據庫以及操作系統層面都可以通過各種手段進行調優,從而在整體上提升系統的性能。

……

網友評論(不代表本站觀點)

來自無昵稱**的評論:

很好的一本書, 和其他電商比較了一下價格, 當當是比較便宜的

2014-11-24 16:25:40
來自matthew**的評論:

從某個專題講開,介紹相關的知識,這樣的組織很不錯。設計模式那塊,從性能方法來談為什么用模式,很有感悟。

2012-11-14 13:04:08
來自洗漱用**的評論:

這本書確實讓我學到了很多新知識,也補充了當時不是很明確的地方

2014-10-28 19:14:06
來自私守一**的評論:

感覺寫的很不錯,里面有很多平時遇到的但是不知道怎么解決的問題都提及到了,雖然我還沒有詳細看,但是感覺這本書買的還是挺值的。

2012-12-12 17:15:05
來自無昵稱**的評論:

做了程序員這么久了,真不知道這些優化方法,對我很實用,很好。

2013-05-16 11:51:34
來自無昵稱**的評論:

接觸java時間不短了總感覺寫出的程序不太理想就買了這本書,,,,

2013-07-24 09:34:39
來自lgdlc**的評論:

調優從三個角度,設計、代碼、系統。寫的非常不錯。遺憾的是書還沒看完就丟了。

2012-11-24 16:18:42
來自Fover23**的評論:

研究較為深入,還不錯啦。不過有時候覺得如果程序要考慮那么多,那就煩死了~~?。?!

2013-03-26 14:49:09
來自沈俊_A4**的評論:

這本書寫的不錯,多于java代碼性能提升有幫助,正在學習中。

2013-06-15 11:29:47
來自horizon**的評論:

適合初級開發人員學習,3.5 有助于改善性能的技巧 這一章節講的比較常見,多線程優化講的還可以,學習中~

2014-10-21 12:59:24
來自閑庭賞**的評論:

上午下單,傍晚就收到了,速度快。但是書就用一層塑料包裝,臟兮兮的,打開前二十頁折痕變形很明顯,第一次在當當購買,就懶得退了,希望下次購買不會遇到這種情況。

2016-01-22 16:16:56
來自Alex060**的評論:

買回來第一天我就看了一大半,書中有很多關于作者多年一來的經驗還有很多新的知識在里面,非常不錯,喜歡這樣的書和這樣的寫作風格!支持一個

2013-07-05 17:23:29
來自無昵稱**的評論:

聽說是本不錯的書,性能優化對于java編程來說還是挺重要的,希望有所幫助吧!

2013-03-29 17:50:45
來自無昵稱**的評論:

快遞送貨好快,半夜下單下午就到了,而且很負責

2016-05-21 09:15:11
來自無昵稱**的評論:

專業性很強啊,同事買的書,他覺得還不錯。挺滿意的。

2016-09-20 13:46:08
來自figofut**的評論:

這本書關于java優化的描述很詳實,確實可以學到很多優化的知識。

2015-05-21 18:49:11
來自joe926**的評論:

作者通過簡單易懂的例子,介紹如何駕馭Java如何解決性能問題,是一本好書。

2013-08-11 16:56:20
來自鏡花水**的評論:

該書是電腦軟件工具書,下單時有貨,發貨時缺貨,下次購買吧。

2016-11-28 07:40:21
來自yujiabi**的評論:

升級到一定的程度,就開始關注與性能方面了.這本書無疑是雪中送炭

2015-04-08 15:54:23
來自無昵稱**的評論:

收到這本書后大致看了一下里面的內容,總體感覺還不錯,書的紙張也還好,里面的內容也很實用,適合有一定開發經驗又急于提高自己實戰技術的開發人員,總體感覺還不錯,就是下單后發貨速度有些落后了!

2013-10-14 09:46:03
來自悲水點**的評論:

書很不錯,國人中寫的算是不錯的了,java中很多需要注意和優化的地方都提到了,而且例子很多,也容易懂,大二時候買的,現在工作2年了,還經常會看看,中,高級必讀書

2016-03-21 02:31:18
來自無昵稱**的評論:

感覺對于中級Java程序員 很有幫助,知識面很廣。

2014-04-24 15:24:14
來自無昵稱**的評論:

程序員就是要不停地學習學習,開卷有益,推薦購買!

2017-09-09 14:17:19
來自vstarcu**的評論:

書不錯,能讓人清晰的知道優化過程以及為何如此優化的原因

2016-11-28 18:28:58
來自上的不**的評論:

作為java程序開發者,如果只知道寫流水一樣的代碼,那么你永遠成為不了大牛。優化!?。∶總€程序員都必須重視優化,從這本書里,我學到了很多以前不知道的優化方法,真的受益匪淺呀??!

2013-09-14 15:22:14
來自無昵稱**的評論:

主要是針對程序性能的調優,對日常編程過程中容易被忽視的地方都有做到說明,對有一定工作經驗的程序開發者來說會更有指導性建議。

2016-12-22 18:32:48
來自一刀620**的評論:

對于Java性能調優的可以看下,很值得推薦。

2015-04-12 10:21:09
來自無昵稱**的評論:

對于已經很熟悉Java的程序員來說很有幫助

2013-06-12 19:55:23

免責聲明

更多出版社