public static void main is discussed in Simple terms for a very Beginner.
In Java, the execution starts from main() method. But for compilation, main() is not required. Java's main() method syntax is quiet different from C/C++.
Following is the public static void main complete signature
Every word in the public static void main statement has got a meaning to the JVM.
1. public: It is a keyword and denotes that any other class (JVM) can call the main() method without any restrictions.
3. void: It is a keyword and denotes that the main() method does not return a value.
4. main(): It is the name of the method.
The Java program under execution takes some context area (execution area) in the RAM. JVM is in another context area. To call the main(), the JVM requires an object. When the JVM has not entered into the program, how it can create an object or get an object. To overcome this, allow the JVM to access the main() without object just by declaring static. Once the JVM enters, it can create hundreds of objects later.
Whether you pass right now command-line arguments or not, you must have the string array as parameter as it is the part of syntax.
Any word is missed in the above statement, the program compiles, but does not execute.
A program using main() is discussed in "Basic Class Structure, Compilation and Execution".
Other interested topics, you definitely like.