垃圾回收机制

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开始,搜索引用节点,
posted @ 2020-03-15 21:45  我是小白ee_zx  阅读(167)  评论(0)    收藏  举报