zoukankan      html  css  js  c++  java
  • C#垃圾回收机制

    C、C++语言中,new一个对象后要用delete()或者free()自己回收内存,而Csharp中,有一套自己的垃圾加收机制,那么,他什么时候会回改呢?

    如果一个引用对象,没有指针再指向他的时候,这个对象就可以被回收。

    注意:是可以被回收,而不一定马上就会回收,因为每回收一次就会耗费很多资源,所以,他会找时机。那么,如果我们确实要回收了,就当怎么办?

    可以调用GC.Collection()。但一般情况下,不要去调用。

    与此相关的一个知识点就是WeakReference,看一个例子

    Person p1 = new Person();

                WeakReference wr = new WeakReference(p1);

    p1 = null;

                GC.Collect();//不写可能IsAlive还为true

    Console.Writeline(wr.IsAlive);

    如果是弱引用,当p=null后,就可以回收这片内存了。但如果GC没有去回收,IsAlive便为True;

  • 相关阅读:
    Google 嘘! 嘘!
    zabbix fast
    zabbix
    kernel update
    列表推导
    Ddos 反射性防护 simple
    file cycle
    Scala
    Hadoop
    数据库
  • 原文地址:https://www.cnblogs.com/La5DotNet/p/2434473.html
Copyright © 2011-2022 走看看