why main method is static and public in java code example

Example 1: why main method is public static void in java

public :publicis an access specifier which can be used outside the class. 
When main method is declared
public it means it can be used outside class.
static : To call a method we require object. Sometimes it may be 
required to call a method without the help of object. Then we declare that 
method as static. JVM calls the main() method without creating
object by declaring keyword static.
If we make the main method non-static, 
JVM will have to create its object first and then call main() method which 
will lead to the extra memory allocation.
void : void return type is used when a method does’nt return any value. 
main() method doesn’t return any value, so main() is declared as void.

Example 2: do i have to use static methods in java main

Use a static method 
when you want to be able to access the method 
without an instance of the class