c#简答题

本文介绍了C#中GC(垃圾收集)的概念及其工作原理。GC主要用于管理堆上的引用类型对象,通过引用计数跟踪对象的使用情况。当对象不再被引用时,GC会在内存占用达到一定程度时启动,释放不再使用的对象所占的空间,并整理内存使其连续。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

C#中有2个变量类型,一种是值类型,一种是引用类型,

值类型是在栈上创建,这一类型用不到GC,

引用类型是在堆中创建,GC主要是在这里管理对象。GC对每个对象有个引用计数,所有说只要有变量在引用它,计数器就不为0,一个变量不再引用这个对象,对象的计数器就减一,直到计数器为0时,对象就成为内存垃圾了(没有变量引用它),但是此时垃圾并没有回收。那什么时候回收呢是在内存占用超过一定限度是,GC才启动,释放垃圾资源,说白了就是delete这些对象,将空间归还给系统。但是这还没完,空间释放后,内存空间就不连续了,所有GC还要做一件事,就是将空间整理下,将占用的空间连续话,具体说就是将空间向上推,就是向高地址转存,这样空间就连续了,使用也方便了,然后GC就改变应用那些对象的变量里地地址,让他们指向正确的位置,所以说C#中的引用类型就是一种指针,一种动态改变值的指针

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值