为什么Java中的main()无效?

对于具有类似C语法的语言,我们声明main()方法以返回int或float值(或void)。是否可以在Java中从main()声明非无效的返回类型?如果没有,那为什么不呢?这是否意味着Java程序不向操作系统返回任何值?



慕侠2389804
浏览 628回答 3
3回答

达令说

该main()方法确实必须具有void返回类型。从Java语言规范中的“执行-虚拟机启动”(第12.1.4节)中:该方法main必须声明 public,static和void。它必须接受单个参数,该参数是字符串数组。它继续描述程序何时在“执行-程序退出”(第12.8节)中退出:程序终止所有活动并在发生以下两种情况之一时退出:不是守护程序线程的所有线程都终止。某些线程调用exitclass Runtime或class 的方法, System安全管理器不禁止退出操作。换句话说,程序可能在main方法完成之前或之后退出;main因此,返回值将毫无意义。如果要让程序返回状态码,请调用以下方法之一(请注意,这三个方法都不会正常返回):System.exit(int status) - 相当于 Runtime.getRuntime().exit(status)Runtime.exit(int status)-通过启动其关闭序列来终止当前正在运行的JVM(如有必要,运行所有已注册的关闭钩子和未调用的终结器)。完成此操作后,JVM将停止。Runtime.halt(int status) -强制终止当前正在运行的JVM。在这三种中,这System.exit()是终止JVM的常规且最方便的方法。

ITMISS

main具有voidas返回类型的方法的原因是,一旦main完成,就不一定意味着整个程序就完成了。如果main产生新线程,则这些线程可以保持程序运行。此时的返回类型main没有多大意义。例如,这在Swing应用程序中很常见,该main方法通常在Swing线程上启动GUI,然后main完成...但是程序仍在运行。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java