1. 对main方法的理解
public static void main(String[ ] args) 为Java程序的入口。
public: 权限修饰符,表明任何类或对象都可以访问。
static:“静态”,表明main方法是一个静态方法,方法中的代码存储在静态存储区,只要类被加载后,就可以使用该方法而不需要通过实例化对象来访问,可以直接通过类名.main()直接访问。
void: 返回值为空。
main: Java识别的特殊方法名,是程序的入口方法。
String[] args:字符串数组,参数args为开发人员在命令行状态下输入参数。
JVM运行时按照上述方法签名来查找方法的入口。必须有public 和 static修饰,返回值为空,方法的参数为字符串数组,方法名为main。若能找到,就执行。找不到,则报错。
2.main方法是否还有其它可用的定义格式?
(1)public和static没有先后顺序关系,因此以下定义也合理。
static public void main(String[ ] args)
(2)还可以把main方法定义为final
public static final void main(String[ ] args)
(3)还可以用synchronized修饰main方法
public static synchronized void main(String[ ] args)
由于main()方法为程序的入口方法,不能用abstract关键字修饰
3. 同一个.java文件中是否可以有多个main()方法?
虽然每个类中都可以定义main()方法,但只有与文件名相同的用public修饰的类中的main()方法才能作为整个程序的入口方法。
4.main()方法一定是程序运行时第一个被执行的模块吗?
答案:否
静态块在类被加载时就会被调用,而main()方法是类被加载后程序运行的入口,只不过mian()方法是静态方法,不用通过实例化对象来访问。
示例:
public class Test{
static
{
System.out.println("Hello World1");
}
public static void main(String[] args)
{
System.out.println("Hello World2");
}
}
输出结果:
Hello World1
Hello World2