GC(分代收集算法)
次数上频繁收集Young区
次数上较少收集Old区
基本不动元空间
GC算法
JVM进行GC时,并非每次都对上面三个内存区域一起回收,大部分回收的都是只新生代,因此按照GC回收的区域又分为
普通GC
全局GC Full/Major GC
Major GC的速度一般要比MinorGC慢10倍以上(原因是堆空间中新生区占1/3,养老区占2/3,养老区进行扫描gc时是全局扫描,所以时间用时较多)
GC的四大算法
1,引用计数算法
2,复制技术算法(Copying)
优点:不会产生复制碎片
不会丢东西
缺点:耗空间
3, 标记清楚算法(Mark-Sweep)
节约时间
产生内存碎片
4 标记清除压缩算法(Mark-Compact)
没有最好的算法,只有最合适的算法====》fendaishoujisuanfa
年轻代*(Young Gen)
年轻代的特点his区域相对老年代较小,速度是最快的,复制算法的效率只和当前存活对象大小有关,因而很适用于年轻代的回收,而复制算法内存利用率不高的问题,通过hotspot的两个survivor设计得到缓解
老年代(Tenure Gen)
老年的的特点是区域大,对象存活率高
由标记清除或标记整理混合实现
JMM
线程间无法通信,需要主内存作为中间件
JMM 可见性(通知机制)
先建造一个模型类
静态先行