gpt4 book ai didi

java - JVM 意味着同时调用 main() 和 Finalize() ,一个是公共(public)的,另一个是 protected ?为什么?

转载 作者:行者123 更新时间:2023-12-01 11:16:04 25 4
gpt4 key购买 nike

我正在寻找在对象类中 protected Finalize 方法的答案,我遇到了答案,最后感到困惑,因为我发现对于对象类的 Finalize() 方法,有人说:它不是公共(public)的(或默认访问)因为它应该在对象被垃圾收集时由 JVM 在内部调用 - 它不应该由其他任何东西调用。

public static void main(String arr[]),这也意味着只能由JVM调用,因为JVM在我的项目之外的类之外,所以要通过JVM访问这个方法,它应该是公共(public)的。

这对于 JVM 和 main() 来说是有意义的,但 Finalize() 方法与 JVM 调用的原因相同,它不能是公共(public)的。

有人可以帮我看清楚这张照片吗?提前致谢

最佳答案

没有理由阻止纯 Java 代码调用 main 方法;事实上,它通常由框架代码调用,框架代码在执行一些初始化后执行任意类的 main 方法。

与此相反,自己调用任何对象的 finalize 都是危险的,并且几乎肯定会破坏对象的不变量。

关于java - JVM 意味着同时调用 main() 和 Finalize() ,一个是公共(public)的,另一个是 protected ?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31810245/

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