zoukankan      html  css  js  c++  java
  • .Net的GC垃圾回收机制 为什么要有GC?

    C/C++中由程序员进行对象的回收像学校食堂中由学生收盘子,.Net中由GC进行垃圾回收像餐馆中店员去回收。

    GC是垃圾收集器(Garbage Collection)。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。GC只能处理托管内存资源的释放,对于非托管资源则不能使用GC进行回收,必须由程序员手工回收,一个例子就是FileStream或者SqlConnection需要程序员调用Dispose进行资源的回收。

    要请求垃圾收集,可以调用下面的方法:GC.Collect()一般不需要手动调用GC.Collect()。当一个对象没有任何变量指向(不再能使用)的时候就可以被回收了。

    基础知识:当没有任何变量指向一个对象的时候对象就可以被回收掉了,但不一定会立即被回收。

                object obj = new object();//只有new才会有新对象

                Console.WriteLine(obj);

                object obj2 = obj;

                obj = null;

                obj2 = null;

                Console.WriteLine();

    GC是.Net的垃圾收集器,可以进行内存资源的回收,程序员无需关心资源的回收,当一个对象没有任何引用的时候就可以被回收了。一个对象可以被回收并不意味着一定会被立即回收,GC会选择时机进行回收。可以调用GC.Collect()让GC立即回收。GC不能回收非托管资源,对于非托管资源一般都实现了IDisposable接口,然后使用using关键字进行资源的回收。

  • 相关阅读:
    *循环-04. 验证“哥德巴赫猜想”
    循环-03. 求符合给定条件的整数集
    *循环-01. 求整数段和【help】
    分支-15. 日K蜡烛图
    分支-14. 简单计算器
    *分支-13. 计算天数
    *分支-12. 计算火车运行时间
    自我介绍
    JAVA WEB第0课
    Forward团队-爬虫豆瓣top250项目-成员简介与分工
  • 原文地址:https://www.cnblogs.com/boke1/p/11057007.html
Copyright © 2011-2022 走看看