这个问题是这个问题的复制品,但如果可以解决的话,没有人回答。他们只提出了替代方案——使用 try-with 或者有一个像 Scanner scanner=new Scanner(System.in) .这导致我认为,未引用的扫描仪对象不能关闭,但。。。问题:难道这些对象不应该成为垃圾收集的对象,并最终被关闭吗?(注意:我意识到依靠gc不是一个好主意)
try-with
Scanner scanner=new Scanner(System.in)
y0u0uwnf1#
看看openjdk的源代码, Scanner 不会覆盖 finalize 方法。这意味着在最终收集对象时不会执行任何特殊代码,您需要显式地关闭它。编辑:这可能是有意的,因为 Scanner 是用在 System.in ,你不应该关闭它。
Scanner
finalize
System.in
1条答案
按热度按时间y0u0uwnf1#
看看openjdk的源代码,
Scanner
不会覆盖finalize
方法。这意味着在最终收集对象时不会执行任何特殊代码,您需要显式地关闭它。编辑:
这可能是有意的,因为
Scanner
是用在System.in
,你不应该关闭它。