永发信息网

该怎么理解垃圾回收机制(Java/.NET都行)?

答案:2  悬赏:50  手机版
解决时间 2021-02-15 19:55
  • 提问者网友:我的未来我做主
  • 2021-02-15 05:20
在Java或.NET中,垃圾回收机制该怎么理解?
最佳答案
  • 五星知识达人网友:一秋
  • 2021-02-15 05:28
gc即垃圾回收集机制是指jvm用于释放那些不再使用的对象所占用的内存。java语言并不要求jvm有gc,也没有规定gc如何工作。不过常用的jvm都有gc,而且大多数gc都使用类似的算法管理内存和执行收集操作。

  在充分理解了垃圾收集算法和执行过程后,才能有效的优化它的性能。有些垃圾收集专用于特殊的应用程序。比如,实时应用程序主要是为了避免垃圾收集中断,而大多数OLTP应用程序则注重整体效率。理解了应用程序的工作负荷和jvm支持的垃圾收集算法,便可以进行优化配置垃圾收集器。

  垃圾收集的目的在于清除不再使用的对象。gc通过确定对象是否被活动对象引用来确定是否收集该对象。gc首先要判断该对象是否是时候可以收集。两种常用的方法是引用计数和对象引用遍历。
全部回答
  • 1楼网友:愁杀梦里人
  • 2021-02-15 07:02
理解垃圾回收,首先要先理解没有垃圾回收的时候是怎么做的。就像要真正了解abs的作用,首先要开一开没有abs的车子是一样的道理。 没有垃圾回收的时代,动态分配的内存都需要程序员手动的进行回收。 比如c语言时代,动态分配堆内存一般使用malloc()函数,而回收内存使用free()函数。 在c++时代,动态分配堆内存一般使用new关键字,而回收内存使用delete关键字。 这就让程序员在分配内存的时候要万分小心,一定要在某个地方释放,否则,申请的内存越来越多没有释放,能够使用的内存就越来越少了,这就是内存泄露(memory leak)。 java引进了垃圾回收,对程序员来讲,就不需要将new出来的堆内存进行回收,回收工作由专门的线程来做。大大减轻了程序员的工作强度。但缺点也是明显的,也就是失去了对内存进行精确控制的机会了。有利必有弊。不过在内存是白菜价的今天,内存的精确控制也没有那么重要了。.net则是借鉴了java的内存回收机制。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯