zoukankan      html  css  js  c++  java
  • GC Root

                        GC Root

           GC Root:常说的GC(Garbage Collector) roots,特指的是垃圾收集器(Garbage Collector)的对象,GC会收集那些不是GC roots且没有被GC roots引用的对象。

        GC Root 引用的对象:

            1.虚拟机栈中引用的对象

            2.方法区中类静态属性引用的对象

            3.方法区常量引用的对象

            4.本地方法栈中JNI引用的对象(Native方法)

        简单的用衣服图来表达一下:

            

       留心脚下:

         判断一个对象的存活不是有计数器判断,因为计数器无法解对象之间的相互循环引用问题,一个对象的存活可以使用可达性分析算法来判断。

      可达性分析算法:

        

        

        一次对象自我拯救的演示:

     1 package com.hehe;
     2 
     3 public class Main {
     4 
     5 
     6     public static Main save = null;
     7 
     8     public void isAlive() {
     9         System.out.println("yes,i am still alive:)");
    10     }
    11 
    12     @Override
    13     protected void finalize() throws Throwable {
    14         super.finalize();
    15         System.out.println("finalize method executed");
    16         Main.save = this;
    17     }
    18 
    19     public static void main(String[] args) throws Throwable {
    20         save = new Main();
    21 
    22         //对象的第一次拯救
    23         save=null;
    24         System.gc();
    25         //finalize方法优先级很低,所以暂时等待0.5秒
    26         Thread.sleep(500);
    27         if (save != null) {
    28             save.isAlive();
    29         } else {
    30             System.out.println("no , i am dead;(");
    31         }
    32 
    33         //第二次拯救:失败,因为任何一个对象的finalize方法都只会被系统调用一次
    34         save = null;
    35         System.gc();
    36         if (save != null) {
    37             save.isAlive();
    38         } else {
    39             System.out.println("no,i am dead :))");
    40         }
    41     }
    42 }

    运行结果:

         

  • 相关阅读:
    第12组 Beta冲刺 (4/5)
    第12组 Beta冲刺 (3/5)
    代码用辅助多了 基础的读取config都忘记了
    wpf 动态添加控件 通过xmal实习 c#代码插入控件
    C#里调用非托管的Dll -z注意 net版本
    动态调用 类库
    c#时间的生成
    c# 第三方 修改版本号 MSBuildTasks, 解决 通配符不匹配问题
    c#.exe以管理员身份运行
    log4
  • 原文地址:https://www.cnblogs.com/meiLinYa/p/9103248.html
Copyright © 2011-2022 走看看