在Java中将String args []替换为int args []会发生什么?

时间:2019-07-09 05:57:04

标签: java

主函数的自变量会发生什么

public static void main(String args[])

替换为

public static void main(int args[])

有人试图运行它?

2 个答案:

答案 0 :(得分:3)

如果将方法public static void main(String args[])更改为public static void main(int args[]),则程序将永远不会运行,但编译成功。

public static void main(String args[])基本上是初始点或入口点。如果将public static void main(String args[])public static void main(String args[])一起写入,则它是main的重载函数。编译器总是在寻找public static void main(String args[])来启动程序。如果找不到此方法,则在运行时程序会给您一个错误。

这就是为什么该方法的签名始终为:

public static void main(String args[])

这是main方法的访问修饰符。它必须是公共的,以便Java运行时可以执行此方法。请记住,如果您将任何方法设为非公开方法,则任何程序均不得执行该方法,因此会应用某些访问限制。因此,这意味着主要方法必须是公开的

答案 1 :(得分:3)

该语言的设计师决定了它不会执行。 Section 12.1.4 of the JLS指定应如何精确定义主要方法的签名。

  

方法main必须声明为public,static和void。它必须指定一个声明形式为String数组的形式参数。因此,可以使用以下任何一种声明:

public static void main(String[] args)

public static void main(String... args)

staticvoid关键字也可以互换。

这就是为什么将参数更改为int只会使该main方法成为普通的Java方法。因此,这意味着Java应用程序没有任何起点,即标准的main方法。