(一)垃圾回收调优
(1)垃圾
- 从根对象出发,所有被引用的对象,都是存活对象,其他对象都是垃圾.
- 根对象:栈中的引用变量,方法区的静态变量所引用的对象.
(2)GC垃圾清除三种方法
1 复制 ---- 图解
2 标记清除 ---- 图解
3 标记整理 ----图解
(二)内存的分代
内存分为新生代,老年代,永久代(方法区)
在JDK的HotSpot虚拟机中,可以认为方法区就是永久代,但是在其他类型的虚拟机中,没有永久代的概念
1 新生代
♦伊甸园
♦生存区: 有from 和 to
2 老年代
垃圾回收策略: 标记清除,标记整理
3 永久代(HotSpot虚拟机中有,其它虚拟机没有此概念)
存放了要加载的类信息、静态变量、final类型的常量、属性和方法信息
(三)垃圾回收器CMS和G1
1 CMS回收器
- 并发的标记整理
- 引起的STW(Stop The Word)更短,执行垃圾回收的时,暂停所有Java程序的执行
- CMS执行过程: (1)初始标记(STW),只标记根对象 (2)并发标记 (3)重新标记(STW) (4)并发清理
2 G1垃圾回收器
- Garbage First
- 颠覆了传统的分代内存划分
- 优先回收垃圾最多的内存区域
- 优化简单
附上一片详细介绍G1的博客,自己看了觉得不错
https://blog.csdn.net/zhanggang807/article/details/45956325
听说今天乌鲁木齐在下土(雪里夹着很多土)
现在这里还没下雪,有点怀念下雪的天气.
12月你好