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;

  • 相关阅读:
    pandas.DataFrame.to_excel
    python list [:1]
    python 读取文件
    pandas 中的常用数学计算
    神经网络相关术语
    keras初探
    机器学习相关
    Numpy random arange zeros
    numpy 常用函数
    【Redis学习之四】Redis数据类型 string
  • 原文地址:https://www.cnblogs.com/La5DotNet/p/2434473.html
Copyright © 2011-2022 走看看