Java程序性能优化是一个永远逃不开的话题,优化无处不在!一个偶然间,小编得到了一份Java程序性能优化的笔记,小编读完这份笔记后大为惊叹,实在是写的太好了,不忍独乐乐,于是把这份笔记免费分享出来,供大家参阅,共同学习,共同成长!
这份笔记涵盖了**+XXX_WWW666666获取**Java性能调优概述、设计优化、Java程序优化、并行程序开发及优化、JVM调优、Java性能调优工具!
Java性能调优概述
性能概述
- 看懂程序的性能
- 性能的参考指标
- 木桶原理与性能瓶颈
- AmdahI定律
性能调优的层次
- 设计调优
- 代码调优
- JVM调优
- 数据库调优
- 操作系统调优
基本调优策略和手段
-
优化的一般步骤
-
系统优化注意事项
设计优化
善用设计模式
- 单例模式
- 代理模式
- 享元模式
- 装饰者模式
- 观察者模式
- Value Object模式
- 业务代理模式
常用优化组件和方法
-
缓冲(Buffer)
-
缓存(Cache)
-
对象复用——” 池”
-
并行替代串行
-
负裁均衡
-
时间换空间
-
空间换时间
Java程序优化
字符串优化处理
- String对象及其特点
- subString ()方法的内存泄漏
- 字符串分割和查找
- StringBuffer和StringBuilder
核心数据结构
-
List接口
-
Map接口
-
Set接口
-
优化集合访问代码
-
RandomAccess接口
使用NIO提升性能
- NIO的Buffer类族和Channel
- Buffer的基本原理
- Buffer的相关操作
- MappedByteBuffer性能评估
- 直接内存访问
引用类型
-
强引用
-
软引用
-
弱引用
-
虚引用
-
WeakHashMap类及其实现
有助于改善性能的技巧
-
慎用异常
-
使用局部变量
-
位运算代替乘除法
-
替换switch
-
一维数组代替二维数组
-
提取表达式
-
展开循环
-
布尔运算代替位运算
-
使用arrayCopy ()
-
使用Buffer进行I/O操作
-
使用clone ()代替new
-
静态方法替代实例方法
并行程序开发及优化
并行程序设计模式
- Future模式
- Master-Worker模式
- Guarded Suspension模式
- 不变模式
- 生产者-消费者模式
JDK多任务执行框架
- 无限制线程的缺陷
- 简单的线程池实现
- Executor框架
- 自定义线程池
- 优化线程池大小
- 扩展ThreadPoolExecutor
JDK并发数据结构
-
并发List
-
并发Set
-
并发Map
-
并发Queue
-
并发Deque
并发控制方法
- Java内存模型与volatile
- 同步关键字synchronized
- ReentrantLock重入锁
- ReadWriteLock读写锁
- Condition对象
- Semaphore信号量
- ThreadLocal线程局部变量
“锁”的性能和优化
-
线程的开销
-
避免死锁
-
减小锁持有时间
-
减小锁粒度
-
读写分离锁来替换独占锁
-
锁分离
-
重入锁和内部锁
-
锁粗化
-
自旋锁
-
锁消除
-
锁偏向
无锁的并行计算
-
非阻塞的同步/无