垃圾回收机制
JAVA中的垃圾回收机制:
1.什么样的对象会被当成垃圾?
--当一个对象的地址(引用)没有被记录的时候,该对象就会被当成垃圾回收,进行处理
2.如何校验是否被回收
-- 引用object对象中的()方法,重写finalize方法
public class Finalize {
// --当一个对象的地址(引用)没有被记录的时候,该对象就会被当成垃圾回收,进行处理
public static void main(String[] args) {
/*
* 第一种方式
* 垃圾对象,没有引用,当只有一个垃圾时,不会被清理,除非数量较大才会被清理
*
* */
for (int i = 0; i <5000000 ; i++) {
new Demo();
}
/*
* 第二种方式
* 通知垃圾回收器,回收垃圾
*
* */
for (int i = 0; i <50 ; i++) {
new Demo();
}
System.gc();
}
}
class Demo extends Object{
//重写finalize方法
@Override
protected void finalize() throws Throwable {
System.out.println("垃圾被回收清理");
}
}
3.怎样通知垃圾回收器回收对象
调用 System.gc静态方法通知清理垃圾
4.如和判断那些对象是需要回收的?
jvm采用的方法:跟搜索方法
从找到引用节点GC ROOT开始,搜索引用节点,

浙公网安备 33010602011771号