为什么Java主要方法是静态的?

Java main()方法的方法签名为:

public static void main(String[] args){

...

}

此方法是否有理由是静态的?

回答:

该方法是静态的,因为否则会产生歧义:应调用哪个构造函数?特别是如果你的班级是这样的:

public class JavaClass{

protected JavaClass(int x){}

public void main(String[] args){

}

}

JVM应该调用new JavaClass(int)吗?它应该做什么x?

如果不是,JVM是否应该在JavaClass不运行任何构造方法的情况下实例化?我认为不应该这样,因为这将对整个类进行特殊处理-有时你有一个尚未初始化的实例,并且必须在每个可以调用的方法中进行检查。

对于JVM,在调用入口点之前必须实例化一个类,这有太多的极端情况和含糊之处。这就是为什么main是静态的。

我不知道为什么main总是被标记public

以上是 为什么Java主要方法是静态的? 的全部内容, 来源链接: utcz.com/qa/416041.html

回到顶部