Java中的main方法可以返回一些东西吗?

时间:2011-08-20 06:52:10

标签: java

我最近接受了采访,他们在核心Java中问了两个问题。

问题1。

  

我们可以用:

编写一个java类
public static int main(String[] args){
     System.out.println("Hello");

我回答:不会。编译器不会编译它,因为它期望main的返回类型为int,但我们可以重载它。

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

  

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

     

即。你如何让public static void main([] args)返回一些东西?

任何人都可以帮我解答这个问题吗?

6 个答案:

答案 0 :(得分:67)

  

问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 main方法可以返回一些东西。

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

答案 1 :(得分:34)

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

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

引用上面链接的Java文档:

  

终止当前运行的Java虚拟机。该参数用作状态代码;按照惯例,非零状态代码表示异常终止。

答案 2 :(得分:6)

无法从Java main函数返回值。但是,程序可以返回状态代码。

尝试以下操作以在Java System.exit(45)

中以int状态退出

答案 3 :(得分:-4)

是的,我们可以使用void之外的返回类型编写main方法。这只是意味着我们可以重载我们的main方法。一些例子是

  1. public static void main(String ... x){ }
  2. public static int main(String []args){ }
  3. public static void main(string array[]){ }
  4. 但请注意,编译器只会知道

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

    如果上面的方法不存在,则无法编译。

答案 4 :(得分:-5)

执行此类操作的一种方法是在方法main的内部修改小于args.length的args [i]的值。

示例:

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

来自另一个班级:

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

然后输出是:


另一个值

答案 5 :(得分:-6)

是你可以返回类型void.But值将转到JVM,并且在执行return之后不再有代码因为控件将返回到调用main()的JVM