目录
1.JVM简介
2.Java的类加载
2.1类加载的基本流程
看个例子:
2.2类加载过程中的双亲委派模型
3.JVM之垃圾回收
前言:
3.2垃圾回收的定义
3.3 java的垃圾回收要回收的内存是哪些
3.4 回收堆上的内存,主要是回收什么 ?
3.5 垃圾回收到底是咋回收的?
3.6如何来判断或者找垃圾
我们使用GC垃圾回收机制的话,有2种典型的方案
3.6.1引用计数
引用计数找垃圾的优缺点:
3.6.2 可达性分析
从一组初始的位置出发,向下进行深度遍历,把所有能够访问到的对象都标记成可达即可以被访问到,那不可达的对象就是垃圾。
总结:在Java中不管是引用计数还是可达性分析,判定原则其实都是看当前这个对象是否有引用来指向。是在通过引用来决定对象的生死。
3.7在知道哪些对象是垃圾的基础上,怎么回收?
3.7.1垃圾回收之经典算法
a)标记-清除
b)复制算法
c)标记整理
因此为了解决上面复制算法的内存空间利用率低的问题,我们使用标记整理
但是实际上我们实现的垃圾回收算法,要能够结合以上的三种方式。取长补短