Java's main() method is always static, so that compiler can call it without the creation of an object or before the creation of an object of the class. So, the compiler needs to call the main() method. If the main() is allowed to be non-static, then while calling the main() method JVM has to instantiate its class.