I was recently asked in an exam if public static void main(String arg[]) format of main method was fixed?
Can we change it?
Can we use main>
The signature of the main method is specified in the Java Language Specifications section 12.1.4 and clearly states:
The method main must be declared public, static, and void. It must specify a formal parameter (§8.4.1) whose declared type is array of String.
public otherwise it would not be possible to call itstatic since you have no way to instantiate an object before calling itString arguments is there to allow to pass parameters when executing a Java program from the command line. It would have been possible to define it without arguments but is more practical like that (and similar to other languages)void since it does not make sense to have anything else: a Java program can terminate before reaching the end of the main method (e.g., by calling System.exit())The method signature can therefore be:
public static void main( String[] args )
public static void main( String... args )
note that the varargs version (...) is only valid from Java 5
As the Java language allows the brackets [] to be positioned after the type or the variable (the first is generally preferred),
public static void main( String args[] ) // valid but usually non recommended
is also valid