Java main 方法的多种定义方式
正确的方式
常规定义
public static void main(String[] args) {
}
static 和 public 调换顺序
static public void main(String[] args) {
}
String[] 改成 String...
public static void main(String... args) {
}
通过查看字节码文件,发现使用 String[]
和 String...
得到的字节码文件相同
使用 String[]
字节码文件
// class version 61.0 (61)
// access flags 0x21
public class com/example/demo/Main {
//...
// access flags 0x9
public static main([Ljava/lang/String;)V
//...
}
使用 String...
字节码文件
// class version 61.0 (61)
// access flags 0x21
public class com/example/demo/Main {
//...
// access flags 0x89
public static varargs main([Ljava/lang/String;)V
//...
}
String[] 的参数名修改成其他
public static void main(String[] stuff) {
}
错误的方式
使用非 public 关键字
static void main(String[] args)
- main 函数一定要 public 修饰
没有 static 关键字
public void main(String[] args)
- 没有 static 修饰,就不是启动方法,普通方法
不使用 void 关键字
public static String main(String[] args)
- main 方法必须是 void 方法。