Following are valid main method declarations
public static void main(String[] args)
static public void main(String[] args)
public static void main(String... args)
public static void main(String... args)
public static void main(String ...args)
Following declarations are not valid and result in compilation errors
public void static main(String[] args) // modifiers should be placed before return types.
static void public main(String[] args) // modifiers should be placed before return types.
public static void main(String[]) // reference name missing
public static void main(String.. args) // 2 dots in the variable argument
public static void main(String. .. args) // variable argument declared wrong
public static void main(String args...) // variable argument declared wrong
Following declarations gets compiled correctly but the program gives runtime exception / errors
public static void main(String args) // Upon execution JVM looks for main with argument String array
public void main(String[] args) // static missing
private static void main(String[] args) // method declared private and hence not accessible