Java垃圾收集题目分析

本文详细解释了Java垃圾回收机制的基本原理,包括垃圾收集的工作方式、何时进行垃圾收集以及程序员如何通过调用System.gc()方法建议JVM执行垃圾收集。此外,还探讨了垃圾收集线程的工作机制以及垃圾收集器如何确定对象是否可以被回收。

【考题题干】关于垃圾收集的哪些叙述是对的?
A.垃圾收集将检查并释放不再使用的内存。
B.垃圾收集允许程序开发者明确指定并立即释放该内存。
C.程序开发者必须自己创建一个线程进行内存释放的工作。
D.垃圾收集能够在期望的时间释放被 Java 对象使用的内存。
【试题分析】Java 语言将内存分配和释放的工组交给了自己,程序员不必做这些工作,它提供一个

系统级的线程跟踪每个内存的分配,在 JVM 的空闲处理中,垃圾收集线程将检查和释放不再使用的内
存(即可以被释放的内存)。垃圾收集的过程在 Java 程序的生存期中是自动的,不需要分配和释放内存,
也避免了内存泄漏。可以调用 System.gc()方法建议 JVM 执行垃圾收集以使得可被释放的内存能立即被
使用,当此方法返回的时候, JVM 已经做了最大的努力从被丢弃的对象上回收内存空间。程序员不能指
定收集哪些内存,一般而言也不用关心这个问题,除非是程序的内存消耗很大,特别是有很多临时对象
时可以“建议“进行垃圾收集以提高可用内存。需要指出的是调用 System.gc()方法不能保证 JVM 立即
进行垃圾收集,而只能是建议,因为垃圾收集线程的优先级很低(通常是最低的)。
JVM 垃圾收集器收集一个对象之前,一般要求程序调用适当的方法释放资源,但在没有明确释放资
源的情况下,Java 提供了缺省机制来终止化该对象心释放资源,这个方法就是 finalize(  )。因此选项 A
是正确的。
垃圾收集器不可以被强制执行,但程序员可以通过调用 System. gc 方法来建议执行垃圾收集器。因
此选项 B 是错误的。
Java 的垃圾回收机制是为所有 Java 应用进程服务的,而不是为某个特定的进程服务的。因此,任何
一个进程都没有权利去命令垃圾回收机制做什么、怎么做或做多少。因此选项 C 是错误的。
Java 运行时系统只在需要的时候才使用垃圾收集。因此用户无法知道垃圾回收发生的精确时间。同
样没有办法预知在一组均符合垃圾收集器收集标准的对象中,哪一个会被首先收集。 因此选项 D 是错误
的。
【参考答案】A

转载于:https://www.cnblogs.com/ToukoXu/p/7850261.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值