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

candy小蔡 2021-09-19 09:07 188 次浏览 赞 92

最新问答

  • 珍珍zero

    举2个例子:
    1.GC(Grid Communication)网格通信 网格是一种新兴的技术,正处在不断发展和变化当中。目前学术界和商业界围绕网格开展的研究有很多,其研究的内容和名称也不尽相同因而网格尚未有精确的定义和内容。比如国外媒体常用“下一代互联网”、“Internet2”、“下一代WEB”等来称呼网格相关技术。但“下一代互联网(NGI)”和“Internet2”又是美国的两个具体科研项目的名字,它们与网格研究目标相交叉,研究内容和重点有很大不同。企业界用的名称也很多,有内容分发(Contents Delivery)、服务分发(Service Delivery)、服务(e-service)、实时企业计算(Real-Time Enterprise Computing,简称RTEC)、分布式计算Peer-to-Peer Computing(简称P2P)、Web服务(Web Services)等。
    2 .回收器 JA/.NET 中的收集器。Java是由c++发展来的。它摈弃了C++中一些繁琐容易出错的东西。其中有一条就是这个GC。而C#又借鉴了JA。 在老式的C/C++程序中,程序员定义了一个变量,就是在内存中开辟了一段相应的空间来存值。由于内存是有限的,所以当程序不再需要使用某个变量的时候,就需要销毁该对象并释放其所占用的内存,好重新利用这段空间。在C/C++中,释放无用变量内存空间的事情需要由程序员自己来处理。就是说当程序员认为变量没用了,就手动地释放其占用的内存。但是这样显然非常繁琐,如果有所遗漏,就可能造成浪费甚至内存泄露。当软件系统比较复杂,变量多的时候程序员往往就忘记释放内存或者在不该释放的时候释放内存了。 有了GC,程序员就不需要再手动的去控制内存的释放。当Java虚拟机(VM)或.NET CLI发觉内存紧张的时候,就会自动地去清理无用对象(没有被引用到的对象)所占用的内存空间(这里的说法略显粗略,事实上何时清理内存是个复杂的策略)。

    浏览 368赞 139时间 2022-04-23

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