这个问题的答案取决于您使用的java版本。在JDK 7之前,主方法在java程序中不是强制性的。
null
- 你可以在下面写完整的代码 静态块 而且运行正常。
- 在main()之前加载类时,首先执行静态块;方法被调用,因此在调用main()之前。因此通常声明为static方法 Java不需要对象来调用main方法。
- 当您发出run命令(即记事本中下面提到的程序中的java Test)时,编译器假定Test是main()所在的类,并且由于编译器加载main()方法,静态块已准备好执行。所以在这里,它将首先运行static block,然后它将看到那里没有main()。因此,它将给予 “例外” ,执行时出现异常。然而,如果我们不想出现异常,我们可以通过 系统出口(0);
然而,从JDK7来看,main方法是强制性的。编译器将首先验证main()是否存在。如果你的程序不包含main方法,那么你会得到一个 错误 “在类中找不到主方法”。它将给出一个错误(字节码验证错误,因为在它的字节码中,main不存在),而不是一个异常,因为程序还没有运行。
注:- 然而,这两个程序都将被编译,因为对于编译,我们不需要main()方法。
// This program will successfully run // prior to JDK 7 public class Test { // static block static { System.out.println( "Hello User" ); } } |
下面是输出的屏幕截图,可以帮助您实际地可视化相同的内容。我在记事本上运行了这个程序,这样你就可以理解为什么在最新版本中,异常会变成错误。
![图片[1]-主方法在Java中是强制性的吗?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/geeks/geeks_Screenshot-46-5.png)
输出为Java6版本。
![图片[2]-主方法在Java中是强制性的吗?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/geeks/geeks_Screenshot-45-5.png)
JAVA 7中的输出
本文由 高拉夫·米格拉尼 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献。极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END