1.GC是干啥的?
GC:垃圾回收机制
单纯靠程序猿手动释放内存资源是不靠谱的因此引入GC垃圾回收机制 当一个对象长时间没被引用的时候就由GC回收机制回收
2.GC回收哪些内存?
3.回收的基本单位?
按照对象的单位回收 GC只回收曾经使用但是现在不在使用的对象
4.回收对象的基本思路?
1)标记:找出这个对象是否需要被回收(判断对象的生死)
2)回收:把死了的对象回收
1)标记
1.引用计数法:Java中没使用 PHP,Python使用
[meeting]
2.可达性分析:Java使用
对象之间有一定的关联关系 关系错综复杂构成了"有向图"
遍历这个对象关系的图 如果某个节点可以被遍历到就不是垃圾(可达的)
无法被遍历到就是不可达的
3.针对方法区的规则:
a):该类的所有实例都已经被回收了
b):该类加载的ClassLoader已经被回收了
c):该类对象没有在代码中被使用了(各种静态成员 反射) [可达性分析出来的]
add:(了解)
1.各种不同的引用:
2.finalize方法:
Object类方法 方法会在对象被销毁之前调用
但是具体调用时机不确定