public修饰符
Public:公共访问控制符,表示该成员为公共的,它可以被任何对象的方法访问
static修饰符
static:静态修饰符,指定该变量被所有对象共享,即所有实例都可以使用改变量
非静态方法是属于某个对象的方法,在创建这个对象时,对象的方法在内存中拥有自己专属的代码段,而静态方法是属于整个类的,它在内存中的代码多少将被所有对象所共用
由于静态方法是类所共享的方法,所以不但可以通过实例对象来调用静态方法,还可以通过类名来调用静态方法
原因
使用public修饰原因:由于Java虚拟机需要在类外调用main()方法,所以该方法的访问权限必须是public
使用static修饰原因:又因为Java虚拟机运行时系统在开始执行一个程序前并没有创建main()方法所在类的一个实例对象,所以它只能通过类名来调用main()方法作为程序入口,即调用main()方法的类时类名,而不是由类所创建的对象,因而该方法必须是static的