Java中垃圾回收(gc)问题

以下哪项陈述是正确的?
A. 垃圾回收线程的优先级很高,以保证不再 使用的内存将被及时回收
B. 垃圾收集允许程序开发者明确指定释放 哪一个对象
C. 垃圾回收机制保证了JAVA程序不会出现 内存溢出
D. 进入”Dead”状态的线程将被垃圾回收器回收
E. 以上都不对
答案:E
解析:
A: 垃圾回收在jvm中优先级相当相当低。
B:垃圾收集器(GC)程序开发者只能推荐JVM进行回收,但何时回收,回收哪些,程序员不能控制。
C:垃圾回收机制只是回收不再使用的JVM内存,如果程序有严重BUG,照样内存溢出。
D:进入DEAD的线程,它还可以恢复,GC不会回收

当程序运行时,至少会有两个线程开启启动,一个是我们的主线程,一个时垃圾回收线程,垃圾回收线程的priority(优先级)较低。垃圾回收器会对我们使用的对象进行监视,当一个对象长时间不使用时,垃圾回收器会在空闲的时候(不定时)对对象进行回收,释放内存空间,程序员是不可以显示的调用垃圾回收器回收内存的,但是可以使用System.gc()方法建议垃圾回收器进行回收,但是垃圾回收器不一定会执行。
Java的垃圾回收机制可以有效的防止内存溢出问题,但是它并不能完全保证不会出现内存溢出。例如当程序出现严重的问题时,也可能出现内存溢出问题。

你可能感兴趣的:(Java)