主方法在Java中是强制性的吗?

这个问题的答案取决于您使用的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" );
}
}


下面是输出的屏幕截图,可以帮助您实际地可视化相同的内容。我在记事本上运行了这个程序,这样你就可以理解为什么在最新版本中,异常会变成错误。

  • 如果在JDK 7之前运行
    图片[1]-主方法在Java中是强制性的吗?-yiteyi-C++库

    输出为Java6版本。

  • 如果在JDK 7、8等平台上运行…
    图片[2]-主方法在Java中是强制性的吗?-yiteyi-C++库

    JAVA 7中的输出

    本文由 高拉夫·米格拉尼 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献。极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

    如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

  • © 版权声明
    THE END
    喜欢就支持一下吧
    点赞9 分享