我正在寻找finalize方法的答案,在对象类中受保护,我遇到了答案,最后感到困惑,因为我发现对象类的finalize()方法据说:它不是公共的(或默认访问),因为它意味着在对象被垃圾收集时由JVM内部调用-它不意味着由其他任何东西调用。
public static void main(String arr[]),这也意味着只能由JVM调用,因为JVM在我的类之外,在我的项目之外,所以要通过JVM访问这个方法,它应该是公共的。
这对于JVM和main()是有意义的,但是finalize()方法由于JVM调用它的原因,它不能是公共的。
谁能把这幅画给我看清楚吗?提前感谢没有理由阻止普通Java代码调用main
方法;实际上,它通常是由框架代码调用的,框架代码在执行一些初始化后执行任意类的main
方法。
与此相反,自己调用任何对象的finalize
都是危险的,并且几乎肯定会破坏对象的不变量。
答案是有时您可能希望从Java代码中调用另一个项目的main方法。finalize