第8章
内存管理模型:堆、栈
GC,root、reachable、unreachable、live、dead
在静态内存分配模式下,无需进行内存回收:所有都是已确定的。
在栈上进行内存空间回收:按block(某个方法)整体进行。
在heap上进行内存空间回收,最复杂——无法提前预知某个object是否已经变得无用。
GC的四种基本算法
Java/JVM的内存管理模型:各区域、各区域的GC方法
JVM GC性能调优:参数配置、GC模式选择
常见的Java I/O方法
Java性能调优工具、Memory dump、Stack trace
jstat, jmap,jhat, Visual VM, MAT
Java代码调优的设计模式
singleton, prototype/cloneable,flyweight, object pool
Singleton Pattern单例模式
Flyweight Pattern轻量模式
Prototype Pattern原型模式
Object Pool Pattern对象池模式
Pool像一个图书馆,“书”就是可复用的object,可借可还
代价:原本可被GC的对象,现在要留在pool中,导致内存浪费——用空间换时间
CanonicalizingObjects规范化
Avoiding Garbage Collection规避垃圾回收
尽可能使用简单数据类型,对类的成员变量也是如此。
String constant pool