Java中垃圾回收机制

- 例题:
释放掉一个指定占据的内存空间的方法是()。
A:调用system.gc()方法
B:调用free()方法
C:复制给该项对象的引用为null
D:程序员无法明确强制垃圾回收器运行
正确答案:D
在Java语言中,GC(Garbage Collection,垃圾回收)是一个非常重要的概念,它的主要作用是回收程序中不再使用的内存。在使用C/C++语言进行程序开发的时候,开发人员必须非常仔细地管理好内存的分配与释放,如果忘记或者错误地释放内存往往会导致程序运行不正确甚至是程序的崩溃。为了减轻开发人员的工作,同时增加系统的安全性与稳定性,Java 语言提供了垃圾回收器来自动检测对象的作用域,实现自动地将不再被使用的存储空间释放掉。
在Java语言中,释放掉占据的内存空间是由GC完成的,程序员无法直接强制释放存储空间当一个对象不被使用的时候,GC会将该对象标记为垃圾,会在后面一个不确定的时间内回收垃圾(程序员无法控制这个时间)。 给对象引用赋值为null,并且该对象无其他引用,GC会标记该对象为垃圾,会在后面一个不确定的时间内回收垃圾。所谓不确定是指什么时间回收,程序员无法控制。

  • 对于选项A,开发人员可以通过调用System.gc0方法来通知垃圾回收器运行,但是JVM也并不能保证垃圾回收器马上就会运行。因此,选项A错误。
  • 对于选项B,Java语言没有提供free(释放)方法。因此,选项B错误
  • 对于选项C,当把对象的引用设置为null时,GC会标记该对象为垃圾,会在后面一个不确定的时间内回收垃圾。因此,选项C错误
  • 对于选项D,程序员无法明确强制垃圾回收器运行。因此,选项D正确。

猜你喜欢

转载自blog.csdn.net/w_Antetokounmpo/article/details/89215589