JVM意味着调用main()和finalize(),一个是公共的,另一个是受保护的?为什么



我正在寻找finalize方法的答案,在对象类中受保护,我遇到了答案,最后感到困惑,因为我发现对象类的finalize()方法据说:它不是公共的(或默认访问),因为它意味着在对象被垃圾收集时由JVM内部调用-它不意味着由其他任何东西调用。

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

这对于JVM和main()是有意义的,但是finalize()方法由于JVM调用它的原因,它不能是公共的。

谁能把这幅画给我看清楚吗?提前感谢

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

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

答案是有时您可能希望从Java代码中调用另一个项目的main方法。finalize

则不成立。

相关内容

  • 没有找到相关文章

最新更新