What I'm saying is that the static keyword eliminates the ambiguity the constructor for the main method would cause. After all, how would the JVM know which constructor to call, if your main class had overloaded constructors? What parameters would it pass? There's just too many questions to ask and answer here
Somewhere I have read this explanation:
A static method belongs to the class and not only to the instance.
If the main method would be non static you would need to create an instance. But to create an instance you need the main method which executes your code.