Can a main method in Java return something?

前端 未结 6 1884
情话喂你
情话喂你 2020-11-29 04:58

I went through an interview recently and they ask me two questions in core Java.

Q 1.

Can we write a java class with:

public s         


        
相关标签:
6条回答
  • 2020-11-29 05:37

    One way of doing such thing is by modifying the values of args[i] for i smaller than args.length, at the interior of method main.

    Example:

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

    From another 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]);
    }
    }
    

    Then the output is:

    value
    another value

    0 讨论(0)
  • 2020-11-29 05:39

    Q 1. Can we write a java class with : public static int main(String[] args){

    Yes, you can but you can't run that Java class.

    Example class:

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

    You will receive an error message when trying to run it:

    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)
    

    Q 2: Next question I unable to answer. He asked write a program so that your java main method could return something.

    You can use System#exit(int) to quit your program with a specific exit code which can be interpreted by the operating system.

    0 讨论(0)
  • 2020-11-29 05:39

    Typically, in languages where main returns int (such as C and C++) the return code of main becomes the exit code of the process, which is often used by command interpreters and other external programs to determine whether the process completed successfully. To achieve the same effect in Java, use the System.exit method (analogous to the standard C function exit), like so:

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

    Quoting the Java documentation linked above:

    Terminates the currently running Java Virtual Machine. The argument serves as a status code; by convention, a nonzero status code indicates abnormal termination.

    0 讨论(0)
  • 2020-11-29 05:40

    Yes You can return of type void.But the value will go to JVM and no more code after return will be executed because The control will return to JVM which calls main()

    0 讨论(0)
  • 2020-11-29 05:42

    One can not return a value from a Java main function. Programs can however return a status code.

    Try the following to exit with an int status in Java System.exit(45)

    0 讨论(0)
  • 2020-11-29 05:42

    Yes, we can write main method with a return type other than void. This simply means that we can overload our main method. Some examples are

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

    But, note here that the compiler will only know

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

    If above method is not present it will not compile.

    0 讨论(0)
提交回复
热议问题