gpt4 book ai didi

java - 重写Object类的finalize()方法有什么用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:44:03 25 4
gpt4 key购买 nike

据我所知,在 java 中,如果我们想手动调用垃圾收集器,我们可以执行 System.gc()。
1.我们在覆盖的 finalize() 方法中执行了哪些操作?
2.手动调用JVM垃圾回收器是否需要重写finalize()方法?

最佳答案

What are the operations that we do inside our overriden finalize() method?

手动分配的空闲内存(通过一些 native 调用),即不由 GC 管理。这是一种非常罕见的情况。有些人也放在那里检查,与对象连接的其他资源已经被释放 - 但它仅用于调试目的并且它不是很可靠。
你必须记住:

  1. finalize 是关于内存的,而且只是内存。
  2. 您无法控制它何时被调用,甚至是否它被调用。

所以永远不要放在那里释放任何其他资源(如文件句柄、锁)。所有这些资源都必须手动释放。
重写 finalize 与调用 System.gc() 无关。

关于java - 重写Object类的finalize()方法有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5635749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com