main方法可以被设定为private么?

时间:2023-01-12 21:27:10

今天看到一个小问题有点意思,把问题贴出来;

问题:main方法可以被设定为private么?

private static void main(String[] args) {
        System.out.println("这段代码有误么?");
    }

看到这段代码,有些伙伴们可能会说这段代码是错的,因为main方法没有被设定为public!
当然,这位伙伴说的没错,当然也不能说他对;

根据Java语言规范,main方法必须声明public(可参考Java语言规范的官方文档),不过,当main方法不是public时,某些版本的Java解释器也可以编译通过,在[Java Bug库](http://bugs.java.com/bugdatabase/index.jsp) 中输入bug号4252539可以查看,这个bug被标明“关闭,不予修复”,sun公司工程师解释说:“Java虚拟机规范工并没有强制要求mian方法为public,并且“修复这个bug有可能带来其他的隐患”,不过,在Java SE 1.4版本后强制mian方法为public

main方法可以被设定为private么?
main方法可以被设定为private么?

在Java的发展历史上还是有很多意思的,当然这只是个野史中的小故事,一笑而过便是!