目录
JVM和性能优化
1、Java内存区域
虚拟机的历史
未来的Java技术一览
运行时数据区域
站在线程角度来看堆和栈
深入辨析堆和栈
方法的出入栈
虚拟机中的对象
堆参数设置和内存溢出实战
2、垃圾回收器和内存分配策略
GC概述
判断对象的存活
辨析强、弱等各种引用
GC算法
分代收集
Stop The World现象
GC日志解读
内存分配与回收策略
内存泄漏和内存溢出辨析
JDK为我们提供的工具
了解MAT
垃圾回收器
垃圾回收器
3、JVM的执行子系统
Class类文件本质
Class文件格式
Class的结构不像XML等描述语言,由于它没有任何分隔符号,所以在其中的数据项,无论是顺序还是数量,都是被严格限定的,哪个字节代表什么含义,长度是多少,先后顺序如何,都不允许改变。按顺序包括:
字节码指令
类加载机制
栈桢详解
方法调用详解
基于栈的字节码解释执行引擎
4、编写高效优雅Java程序
构造器参数太多怎么办?
不需要实例化的类应该构造器私有
不要创建不必要的对象
避免使用终结方法
使类和成员的可访问性最小化
使可变性最小化
优先使用复合
接口优于抽象类
可变参数要谨慎使用
返回零长度的数组或集合,不要返回null
优先使用标准的异常
用枚举代替int常量
将局部变量的作用域最小化
精确计算,避免使用float和double
当心字符串连接的性能
5、深入了解性能优化
常用的性能评价/测试指标
常用的性能优化手段
浏览器/App
CDN加速
反向代理缓存
WEB组件分离
详细了解应用服务性能优化
同步和异步关注的是结果消息的通信机制
阻塞和非阻塞主要关注的是等待结果返回调用方的状态
一个应用的性能归根结底取决于代码是如何编写的。
写在最后
目录
JVM和性能优化
1、Java内存区域
虚拟机的历史
未来的Java技术一览
运行时数据区域