Java中的主要方法可以返回什么?

我最近经历了一次采访,他们在核心Java中问我两个问题。

Q 1。

我们可以写一个java类:

public static int main(String[] args){ System.out.println("Hello"); 

我回答:不。编译器不会编译它,因为它期望main的返回types是int ,尽pipe我们可以重载它。

问题2:我无法回答的下一个问题。

编写一个程序,以便您的Java main方法可以返回一些东西。

也就是说,你如何使public static void main([] args)返回的东西?

任何机构能帮我回答这个问题吗?

问题1:我们可以写一个java类:public static int main(String [] args){

是的,你可以但是你不能运行这个Java类。

示例类:

 class MainTest { public static int main(String[] args) { return 1; } } 

尝试运行时您将收到一条错误消息:

 Error: Main method must return a value of type void in class MainTest, please define the main method as: public static void main(String[] args) 

问题2:下一个问题我无法回答。 他要求编写一个程序,以便你的java主要方法可以返回一些东西。

您可以使用System#exit(int)退出程序,并使用可由操作系统解释的特定退出码。

通常情况下,在main函数返回int语言(比如C和C ++)中, main的返回码成为进程的退出码,通常由命令解释程序和其他外部程序用来确定进程是否成功完成。 为了在Java中达到相同的效果,使用System.exit方法(类似于标准的C函数出口 ),如下所示:

 public static void main(String[] args) { System.exit(42); } 

引用上面链接的Java文档:

终止当前运行的Java虚拟机。 这个论点是一个状态码。 按照惯例,非零状态码表示exception终止。

一个不能从Java主函数返回一个值。 程序可以返回一个状态码。

尝试以下操作以Java System.exit(45)的int状态退出。

是的,我们可以用void之外的返回types来写主方法。 这只是意味着我们可以超载我们的主要方法。 一些例子是

  1. public static void main(String ... x){ }
  2. public static int main(String []args){ }
  3. public static void main(string array[]){ }

但是,请注意,编译器只会知道

 public static void main(String []args){ } 

如果上述方法不存在,则不会编译。

做这种事情的一种方法是在method main的内部修改args [i]的值,使其小于args.length。

例:

 public class Test{ // public static void main(String[] args){ args[0] = "a value"; args[1] = "another value"; } } 

从另一个class级:

 public class Other{ public static void main(String[] args){ String[] result={"",""}; Test.main(result); System.out.println(result[0]); System.out.println(result[1]); } } 

那么输出是:


另一个价值

是的你可以返回types的void.But值将去JVM和返回后不会再执行代码将被执行,因为控制将返回到JVM调用main()