为什么main方法在Java中是静态的

米塔尔:

我听到有人说“如果main不是静态的,那么JVM可以创建一个包含main的类的对象,并通过对象调用该main。
但是问题是JVM如何知道在重载构造函数的情况下,即使有只有一个参数化的构造函数,然后传递什么。”

那是正确的原因吗?
因为在不进入主函数的情况下如何创建类的对象?
请对此发表您的看法。如果那不是正确的原因,那么正确的原因是什么?

本萨多:

这只是一个约定。Java语言设计人员可以轻松地决定必须指定要实例化的类,从而使其构造函数成为主要方法。但是,调用静态方法同样有效,不需要先实例化一个类。

同样,如果类具有超类,则可以通过更改超类来改变程序启动的行为(因为必须在子类之前调用​​超类构造函数),这可能是无意的。静态方法没有这个问题。

主要方法是静态的,因为它可以使事情变得更简单,但是如果他们想使其变得更复杂,则可以这样做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么Java中的静态方法不能抽象?

为什么可以通过创建对象在main方法中调用非静态方法?爪哇

为什么线程比Java中的main方法寿命更长?

为什么Java中的main方法总是需要参数?

为什么在 Java 16 中的非静态内部类中允许静态方法?

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

Java中的静态嵌套类,为什么?

为什么静态方法中的本地类不是静态的

在Java中,为什么Function.identity()是静态方法而不是其他方法?

在Java中,对super()参数列表中的静态方法的调用是有效的。为什么?

为什么不从另一个类中调用一个类的静态方法“ main”?

为什么我在递归 java 方法中收到“线程“main”java.lang.StackOverflowError 中的“异常”?

为什么超类中的静态块/静态变量在main之前初始化?

为什么我不能在Java中“静态导入”“等于”方法?

为什么单例getInstance方法必须在Java中是公共静态的

为什么在静态方法和类中同步得到不同的Java字节码

在Java 8中,为什么不能调用当前类正在实现的接口静态方法

为什么需要在JAVA的void静态方法签名中声明泛型?

为什么Java中的本地类不能具有静态方法?

Java:使用静态方法在Main外部的方法中调用对象

为什么在java中,如果“*”在命令行编译中的main方法main的参数中给出,这被认为是“a”

为什么“数组”类的方法在Java中都是静态的?

Java为什么不允许覆盖静态方法?

Java为什么静态比方法先打印文本

为什么不能在Java接口中定义静态方法?

为什么在Java中使用静态助手方法不好?

为什么 Java 泛型不能用于静态方法?

java扩展静态方法,无法编译,为什么?

通过Java中的main方法访问非静态成员