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

Does unreferenced Scanner object close automatically?

此问题与此 question 重复,但其中 none 回答了是否可以关闭。

他们只提出了替代方案——使用 try-with 或实际上有像 Scanner scanner=new Scanner(System.in) 这样的参考。

这让我想到无法关闭未引用的 Scanner 对象,但是...

问题:对象是否应该符合垃圾收集的条件,因此最终会被关闭?
(注意:我确实意识到依赖于 GC 并不是一个好主意)

查看 the OpenJDK sourceScanner 不会覆盖 finalize 方法。这意味着最终收集对象时不会执行任何特殊代码,您需要显式关闭它。

编辑:
这可能是故意的,因为 Scanner 的一个常见用例是在 System.in 上使用它,你永远不应该关闭它。