GC 是什么? 为什么要有GC?

Posted 197128li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 是什么? 为什么要有GC?的主要内容,如果未能解决你的问题,请参考以下文章

java的垃圾收集,GC 是什么?为什么要有GC?

面试必看--Java—GC垃圾回收

java面试-GC

java垃圾回收机制

#jvm内存及GC机制#

android面试题及答案