The name of the subroutine called by the run-time system (RTS) when it executes a C program. The RTS passes the program's command-line arguments to main as a count and an array of pointers to strings. If the main subroutine returns then the program exits.
Java has inheritted the name "main" from C but in Java it's more complicated of course. The main routine must have a signature of exactly
public static void main(String )
And it must be inside a public class with the same name as the source file where it is defined.