主函数的自变量会发生什么
public static void main(String args[])
替换为
public static void main(int args[])
有人试图运行它?
答案 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)
static
和void
关键字也可以互换。
这就是为什么将参数更改为int只会使该main
方法成为普通的Java方法。因此,这意味着Java应用程序没有任何起点,即标准的main
方法。