选择题 4.  下面关于垃圾回收的描述中,正确的是______。
【正确答案】 D
【答案解析】 在Java语言中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。Java虚拟机的一个系统级线程会自动释放该内存块。当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用,不仅如此,垃圾回收除了释放没用的对象,也可以清除内存记录碎片。
   本题中,对于选项A,finalize方法是在对象空间被回收前调用的。所以,选项A错误。
   对于选项B,成为垃圾的对象,只有在下次垃圾回收器运行的时候才会被回收,而不是马上被清理。所以,选项B错误。
   对于选项C,在C++语言中,调用了析构函数后,对象一定会被销毁,而Java语言调用了finalize方法,垃圾却不一定会被回收,因此,finalize方法与C++语言的析构函数是不同的概念。所以,选项C错误。
   对于选项D,当一个对象不再被引用后就成为垃圾,而垃圾是可以被回收的,但是线程就算没有被引用也可以独立运行,因此,它与对象不同。所以,选项D正确。