第一部分:策略
第1章 性能是什么?
1. 1 计算性能
1. 2 内存驻留
1. 3 启动时间
1. 4 伸缩性
1. 5 观测性能
第2章 性能过程
2. 1 性能过程
2. 1. 1 分析
2. 1. 2 面向对象设计
2. 1. 3 编码
2. 1. 4 测试
2. 1. 5 资源分布分析
2. 2 面向对象设计的参考书目
第3章 测量是一切
3. 1 基准测试
3. 1. 1 为什么要建立基准测试
3. 1. 2 微基准测试
3. 1. 3 宏基准测试
3. 1. 4 分析基准测试
3. 2 资源分布分析
3. 2. 1 分析方法执行的次数
3. 2. 2 分析内存驻留
3. 2. 3 分析内存泄漏
3. 3 处理平滑的资源分布分析数据
3. 3. 1 一个平滑的资源分布数据的实例
第二部分:技巧
第4章 I/O性能
4. 1 基本I/O
4. 1. 1 缓冲流
4. 1. 2 自定义缓冲
4. 1. 3 进一步改进
4. 2 序列化
4. 2. 1 序列化示例
4. 2. 2 改进的序列化示例
4. 2. 3 分析持久状态
第5章 内存驻留
5. 1 计算内存驻留
5. 1. 1 计算内存的使用
5. 1. 2 测量程序的实际内存驻留
5. 2 什么影响了内存驻留
5. 2. 1 对象
5. 2. 2 类
5. 2. 3 线程
5. 2. 4 本地数据结构
5. 2. 5 本地库
5. 3 类装载
5. 3. 1 测量类装载
第6章 控制类装载
6. 1 过早类装载
6. 1. 1 控制过早装载
6. 2 减少类的数量
6. 2. 1 简单内部类
6. 2. 2 合并监听者
6. 2. 3 应用反射
6. 2. 4 应用代理
6. 2. 5 谁真正应用了这些技巧?
6. 3 运行多个程序
6. 3. 1 办公套件示例
6. 3. 2 在同一个虚拟机上运行
6. 3. 3 一个更好的触发程序
第7章 对象可变性:字答串及其它
7. 1 大量小对象
7. 2 处理字符串对象
7. 3 AWT和Swing中的可变对象
7. 3. 1 消除临时对象
7. 4 其它处理可变对象的技巧
7. 4. 1 模拟const
7. 5 可变对象的实例研究
7. 6 小对象及当今JVM
7. 6. 1 对象池
7. 7 数组可变性
第8章 算法和数据结构
8. 1 算法选择
8. 1. 1 算法比较
8. 1. 2 追求优雅
8. 1. 3 考虑问题空间
8. 2 应用递归算法
8. 3 超越简单算法
8. 4 选择数据结构
8. 4. 1 Java 2集合
8. 4. 2 集合接口
8. 4. 3 Collection接口
8. 4. 4 List对象
8. 4. 5 Set对象
8. 4. 6 Map对象
8. 4. 7 同步集合
8. 4. 8 集合框架的算法
8. 4. 9 普通数组
8. 4. 10 不可变集合
8. 5 集合示例
8. 5. 1 集合基准测试的结果
8. 6 算法和数据结构的参考
第9章 使用本地代码
9. 1 本地图示例
9. 1. 1 与本地代码的比较
9. 2 检测JNI开销
9. 2. 1 Java拷贝
9. 2. 2 JNI模式
9. 2. 3 模式1:Call模式
9. 2. 4 模式2:Call-Pull模式
9. 2. 5 模式3:Call-Pull-Push模式
9. 2. 6 模式3(变量):Call-Pull-Push with Critical模式
9. 2. 7 模式4:Call-Invoke
9. 3 本地代码的实例研究
9. 3. 1 Java多媒体框架(Java Media Framework)
9. 3. 2 Java. math包
9. 3. 3 Java 3D
第10章 Swing模型与表示者
10. 1 Swing的组件架构
10. 2 可伸缩组件
10. 2. 1 表示者
10. 2. 2 模型
10. 2. 3 例子:简单的电子表
10. 2. 4 应用定制模型
10. 2. 5 应用定制的表示者
10. 2. 6 一起使用定制模型和表示者
第11章 用Swing编写响应灵敏的用户界面
11. 1 编写响应灵敏GUIs的指引
11. 1. 1 先设计, 后构建(重复)
11. 1. 2 用户决定性能要求
11. 2 在Swing程序中应用线程
11. 2. 1 单线程规则
11. 2. 2 在事件分发中应用invokeLater和invoke And Wait
11. 3 在Swing应用中应用定时器(timer)
11. 3. 1 定时器如何工作
11. 3. 2 没有定时器的代码
11. 3. 3 Swing的定时器类
11. 3. 4 公共Timer类和Timer Task类
11. 3. 5 如何选择一个定时器类
11. 3. 6 定时器实例
11. 4 应用线程创建响应灵敏的程序
11. 5 例子:搜索web
11. 5. 1 工作线程的优先级
11. 5. 2 中断工作线程
第12章 部署
12. 1 编译器选项
12. 2 Jar文件
12. 2. 1 减小程序大小
12. 2. 2 减少下载时间
12. 2. 3 JAR文件及资源文件
12. 3 包(packaging)工具
12. 4 动态下载
12. 4. 1 Applet缓冲
附录
A 垃圾回收的真相
A. 1 为什么要关心垃圾回收?
A. 2 GC的承诺
A. 3. 对象的生命周期
A. 3. 1 创建
A. 3. 2 在用
A. 3. 3 不可见
A. 3. 4 不可达
A. 3. 5 已回收
A. 3. 6 终止
A. 3. 7 释放
A. 4 引用对象
A. 4. 1 引用对象的类型
A. 4. 2 GC弱引用的例子
A. 5 垃圾回收参考书目
B Java Hot Spot虚拟机
B. 1 HotSpot架构
B. 1. 1 HotSpot的两个版本
B. 2 运行期系统特性
B. 2. 1 内存分配和垃圾回收
B. 2. 2 线程同步
B. 3 HotSpot服务器编译器
B. 3. 1 积极内联
B. 3. 2 其它优化技术
B. 3. 3 数组边界检查
B. 4 -x标志
B. 4. 1 -Xnoclassgc
B. 4. 2 -Xincgc
B. 4. 3 -Xbatch
B. 4. 4 -Xms
B. 4. 5 -Xmx
B. 4. 6 -Xprof
B. 5 -XX 标志
B. 5. 1 -XX 标志的类型
B. 5. 2 PrintBytecodeHistogram
B. 5. 3 Compile Threshold
B. 5. 4 NewSize