(1)public修饰符:java类有JVM调用,为了让JVM可以*调用这个main()方法,所以使用public修饰符把这个方法暴露出来。
(2)static修饰符:JVM调用这个主方法时,不会先创建该主类的对象,然后通过对象来调用该主方法,JVM直接通过该类来调用主方法,因此使用static修饰该主方法。
(3)void返回值:因为主方法被JVM调用,该方法的返回值将返回给JVM,这没有任何意义,因此main()方法没有返回值。
上面方法中还包括一个字符串数组形参,根据方法调用规则:谁调用方法,谁负责为形参赋值。也就是说,main()方法由JVM调用,即args形参应该由JVM负责赋值。但JVM怎么知道如何为args数组赋值呢?
看下面程序代码:
public class ArgsTest { public static void main(String[] args) { System.out.println(args.length); for(String arg:args){ System.out.println(arg); } } }上面程序运行输出一个0,这表明args数组是一个长度为0的数组——这是合理的。