未引用的scanner对象是否自动关闭?

4xy9mtcn  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(343)

这个问题是这个问题的复制品,但如果可以解决的话,没有人回答。
他们只提出了替代方案——使用 try-with 或者有一个像 Scanner scanner=new Scanner(System.in) .
这导致我认为,未引用的扫描仪对象不能关闭,但。。。
问题:难道这些对象不应该成为垃圾收集的对象,并最终被关闭吗?
(注意:我意识到依靠gc不是一个好主意)

y0u0uwnf

y0u0uwnf1#

看看openjdk的源代码, Scanner 不会覆盖 finalize 方法。这意味着在最终收集对象时不会执行任何特殊代码,您需要显式地关闭它。
编辑:
这可能是有意的,因为 Scanner 是用在 System.in ,你不应该关闭它。

相关问题