登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書

『簡體書』Java程序性能优化实战

書城自編碼: 3567262
分類:簡體書→大陸圖書→計算機/網絡程序設計
作者: 葛一鸣
國際書號(ISBN): 9787111669432
出版社: 机械工业出版社
出版日期: 2020-08-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:HK$ 157.1

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
考古四记:田野中的历史人生
《 考古四记:田野中的历史人生 》

售價:HK$ 105.6
大洗牌
《 大洗牌 》

售價:HK$ 93.6
亚洲经济发展与模式分析
《 亚洲经济发展与模式分析 》

售價:HK$ 106.8
浅尝难止(全2册)
《 浅尝难止(全2册) 》

售價:HK$ 78.0
零基础制作栩栩如生的立体纸艺花
《 零基础制作栩栩如生的立体纸艺花 》

售價:HK$ 58.8
第三帝国图文史(修订版):纳粹德国浮沉实录(彩色精装典藏版)
《 第三帝国图文史(修订版):纳粹德国浮沉实录(彩色精装典藏版) 》

售價:HK$ 201.6
四大会计师事务所:历史秘辛与未来挑战
《 四大会计师事务所:历史秘辛与未来挑战 》

售價:HK$ 82.8
中国社会经济史
《 中国社会经济史 》

售價:HK$ 106.8

 

編輯推薦:
感受Java开发中的大智慧,让你的Java程序更优美
资深程序员深度分享Java程序性能优化的宝贵经验
从软件设计、编码和JVM等维度阐述性能优化的方法和技巧
通过大量示例,全方位展现Java程序性能优化的技巧;
专注于Java程序性能优化的方法、技巧和思想,深度剖析JDK部分的实现;
深入剖析软件设计层面、代码层面、JVM虚拟机层面的优化方法;
理论结合实践,真正将性能优化的相关技巧应用到实践中。
內容簡介:
Java是目前应用非常广泛的软件开发平台,学习针对Java程序的优化方法有重要的现实意义。《Java程序性能优化实战》以Java程序性能优化为主线,系统地阐述与其相关的知识点,帮助读者掌握编写高质量Java程序的技巧,让他们感受Java开发中的大智慧,编写出更加优美的程序。
《Java程序性能优化实战》共6章,从软件设计、软件编码、JVM调优及程序故障排除等方面介绍Java程序性能优化的方法。第1章介绍性能的基本概念、木桶原理、Amdahl定律,以及系统调优的步骤和注意事项;第2章从设计层面介绍与性能相关的设计模式及常用的优化组件;第3章从代码层面介绍如何编写高性能的Java程序;第4章介绍并行程序开发,以及如何通过多线程提高系统的性能;第5章立足于JVM 虚拟机层面,介绍如何通过设置合理的JVM参数提升Java程序的性能;第6章介绍获取和监控程序及系统性能指标的各种工具,包括相关的故障排查工具。
《Java程序性能优化实战》适合所有的Java程序员、软件设计师、架构师及软件开发爱好者阅读。对于有一定经验的Java工程师,《Java程序性能优化实战》能帮助他们突破技术瓶颈,提高开发水平。
關於作者:
葛一鸣 国家认证系统分析师,Oracle数据库认证专家(OCP)。长期从事Java软件开发,对Java程序设计和JVM有深入的研究,对设计模式、人工智能、神经网络和数据挖掘等技术有浓厚的兴趣。目前专注于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和StringBuilder 76
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类族和Channel 106
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 性能测试工具JMH 129
3.5.1 JMH之Hello World 130
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 替换switch 139
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进行IO操作 147
3.6.10 使用clone代替new 149
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 扩展ThreadPoolExecutor 189
4.3 JDK并发数据结构 191
4.3.1 并发List 191
4.3.2 并发Set 193
4.3.3 并发Map 194
4.3.4 并发Queue 195
4.3.5 并发Deque 197
4.4 并发控制方法 199
4.4.1 Java内存模型与volatile 199
4.4.2 同步关键字synchronized 203
4.4.3 重入锁 205
4.4.4 读写锁 207
4.4.5 读写锁的改进:StampedLock 209
4.4.6 Condition对象 210
4.4.7 信号量 212
4.4.8 线程局部变量ThreadLocal 214
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 World 244
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.4.2 大对象进入老年代 294
5.4.3 设置对象进入老年代的年龄 296
5.4.4 稳定与振荡的堆大小 296
5.4.5 吞吐量优先案例 298
5.4.6 使用大页案例 298
5.4.7 降低停顿案例 299
5.5 实用JVM参数 299
5.5.1 JIT编译参数 299
5.5.2 堆快照 301
5.5.3 错误处理 302
5.5.4 获取GC信息 302
5.5.5 类和对象跟踪 304
5.5.6 控制GC 305
5.5.7 选择类校验器 305
5.5.8 Solaris下的线程控制 306
5.5.9 使用大页 306
5.5.10 压缩指针 306
5.6 JVM调优实战 306
5.6.1 Tomcat简介与启动加速 307
5.6.2 Web应用程序简介 309
5.6.3 JMeter简介与使用 310
5.6.4 调优前Web应用运行状况 313
5.6.5 调优过程 314
5.7 小结 315
第6章 Java性能调优工具 316
6.1 Linux命令行工具 316
6.1.1 top命令 316
6.1.2 sar命令 318
6.1.3 vmstat命令 319
6.1.4 iostat命令 321
6.1.5 pidstat工具 322
6.2 Windows工具 326
6.2.1 任务管理器 326
6.2.2 perfmon性能监控工具 328
6.2.3 Process Explorer工具 331
6.2.4 pslist命令行 333
6.3 JDK命令行工具 334
6.3.1 jps命令 335
6.3.2 jstat命令 336
6.3.3 jinfo命令 339
6.3.4 jmap命令 340
6.3.5 jhat命令 341
6.3.6 jstack命令 343
6.3.7 jstatd命令 346
6.3.8 hprof工具 347
6.3.9 jcmd命令 349
6.4 JConsole工具 350
6.4.1 JConsole连接Java程序 350
6.4.2 Java程序概况 351
6.4.3 内存监控 352
6.4.4 线程监控 352
6.4.5 类加载情况 354
6.4.6 虚拟机信息 354
6.4.7 MBean管理 355
6.4.8 使用插件 356
6.5 Visual VM多合一工具 357
6.5.1 Visual VM连接应用程序 358
6.5.2 监控应用程序概况 359
6.5.3 Thread Dump和分析 361
6.5.4 性能分析 362
6.5.5 快照 365
6.5.6 内存快照分析 365
6.5.7 MBean管理功能 367
6.5.8 TDA的使用 367
6.5.9 BTrace简介 368
6.6 Visual VM对OQL的支持 374
6.6.1 Visual VM的OQL基本语法 374
6.6.2 内置heap对象 375
6.6.3 对象函数 376
6.6.4 集合统计函数 380
6.6.5 程序化OQL 384
6.7 MAT内存分析工具 386
6.7.1 初识MAT 386
6.7.2 浅堆和深堆 389
6.7.3 支配树 392
6.7.4 垃圾回收根 394
6.7.5 内存泄漏检测 395
6.7.6 最大对象报告 396
6.7.7 查找支配者 396
6.7.8 线程分析 397
6.7.9 集合使用情况分析 398
6.7.10 扩展MAT 399
6.8 MAT对OQL的支持 403
6.8.1 Select子句 404
6.8.2 From子句 406
6.8.3 Where子句 407
6.8.4 内置对象与方法 408
6.9 来自JRockit的礼物JMC 411
6.9.1 得到JFR文件 412
6.9.2 Java程序的整体运行情况 413
6.9.3 CPU分析 413
6.9.4 内存分析 414
6.9.5 IO分析 416
6.10 小结 418
內容試閱
Java是目前应用最为广泛的软件开发平台之一。随着Java及Java社区的不断壮大,Java早已不再是一门简单的计算机语言了,它更是一个平台、一种文化、一个社区。
作为一个平台,JVM虚拟机起着举足轻重的作用。除了Java语言,任何一种能够被编译成字节码的计算机语言都属于Java这个平台。Groovy、Scala和JRuby等都是Java平台的一部分,它们依赖于JVM虚拟机,同时,Java平台也因为它们而变得更加丰富多彩。
作为一种文化,Java几乎成为开源的代名词。在Java平台上,有大量的开源软件和框架,如Tomcat、Struts、Hibernate和Spring等。就连JDK和JVM自身也有不少的开源实现版本,如OpenJDK和Harmony。可以说,共享的精神在Java世界里体现得淋漓尽致。
作为一个社区,Java拥有无数的开发人员、数不清的论坛和资料。从桌面应用软件和嵌入式开发,到企业级应用、后台服务器和中间件,都可以看到Java的身影。其应用形式之复杂、参与人数之庞大也令人咂舌。可以说,Java社区已经成为一个良好而庞大的生态系统。
《Java程序性能优化实战》特色
《Java程序性能优化实战》的主要特色有:
专注于Java应用程序的优化方法、技巧和思想,并深度剖析JDK部分的实现。
具有较强的层次性和连贯性,深入剖析软件设计层面、代码层面和JVM虚拟机层面的优化方法。
理论结合实践,使用丰富的示例帮助读者理解理论知识。
《Java程序性能优化实战》内容
《Java程序性能优化实战》主要介绍Java应用程序的优化方法和技巧,共分为6章。
第1章介绍性能的基本概念、两个重要理论(木桶原理和Amdahl定律),以及系统调优的一般步骤与注意事项。
第2章从设计层面介绍与性能相关的设计模式、组件及有助于改善性能的软件设计思想。
第3章从代码层面介绍如何编写高性能的Java代码,涉及的主要内容有字符串的优化处理、文件IO的优化、核心数据结构的使用、Java的引用类型及一些常用的惯例。
第4章介绍并行程序开发的相关知识,以及如何通过多线程提高系统性能,涉及的主要内容有并发设计模式、多任务执行框架、并发数据结构的使用、并发控制方法、锁的优化、无锁的并行计算及协程。
第5章立足于JVM虚拟机层面,介绍如何通过设置合理的JVM参数提升Java程序的性能。
第6章主要介绍获取和监控程序或系统性能指标的各种工具,以及Java应用程序相关的故障排查工具。
读者对象
想要通读本书并取得良好的学习效果,读者需要具备Java的基础知识。本书不是一本帮助Java初学者入门的书籍,而是一本介绍如何编写高质量Java程序的书籍,主要适合以下读者阅读:
拥有一定开发经验的Java开发人员;
Java软件设计师和架构师;
系统调优人员;
有一定Java语言基础而想进一步提高开发水平的程序员。
《Java程序性能优化实战》约定
《Java程序性能优化实战》在讲解的过程中有如下约定:
书中所述的JDK 1.5、JDK 1.6、JDK 1.7和JDK 1.8,分别等同于JDK 5、JDK 6、JDK 7和JDK 8。
如无特殊说明,JVM虚拟机均指Hot Spot虚拟机。
如无特殊说明,《Java程序性能优化实战》中的程序和示例均可在JDK 1.6、JDK 1.7和JDK 1.8环境中运行。
配书资源获取方式
《Java程序性能优化实战》涉及的所有源代码需要读者自行下载。请在华章公司的网站(www.hzbook.com)上搜索到本书,然后单击资料下载按钮,即可在本书页面上找到下载链接。
致谢
在《Java程序性能优化实战》的写作过程中,我充满着感激之情。首先感谢我的家人!在本书完稿前,父亲病重,但由于我的工作繁忙,未能抽出太多时间照顾他,幸好得到了母亲的大力支持和父亲的谅解,我才能够全身心投入到写作之中。同时,母亲对我的悉心照料也让我能够更加专注于写作。
其次,感谢我的工作单位UT斯达康对我的支持和理解,让我能安心写作。另外,还要感谢两位前辈Rex Zhu和Tao Tao!正是他们在工作中对我的悉心指导,才能让我有所进步,而这一切,正是写作本书的基础。
最后,再次感谢我的母亲,祝她身体健康!
售后支持
Java程序性能优化涉及的知识较为庞杂,而且Java技术也在不断地迭代和发展,加之笔者水平和成书时间所限,书中可能存在一些疏漏和不当之处,敬请各位读者指正。阅读本书时若有疑问,请发电子邮件到hzbook2017@163.com。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.