我最近接受了采访,他们在核心Java中问了两个问题。
问题1。
我们可以用:
编写一个java类public static int main(String[] args){ System.out.println("Hello");
我回答:不会。编译器不会编译它,因为它期望main
的返回类型为int
,但我们可以重载它。
问题2:下一个我无法回答的问题。
编写一个程序,以便您的Java
main
方法可以返回一些东西。即。你如何让
public static void main([] args)
返回一些东西?
任何人都可以帮我解答这个问题吗?
答案 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)
答案 3 :(得分:-4)
是的,我们可以使用void之外的返回类型编写main方法。这只是意味着我们可以重载我们的main方法。一些例子是
public static void main(String ... x){ }
public static int main(String []args){ }
public static void main(string array[]){ }
但请注意,编译器只会知道
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