在java中,main()方法是java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,也就是在类实例化之前就调用了;这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是public static void类型的,方法必须是接受一个字符串数组的参数等。static是 告知编译器main函数是一个静态函数。也就是说main函数中的代码是存储在静态存储区的,即当定义了类以后这段代码就已经存在了。如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示main()方法不存在。因为包含main()的类并没有实例化(即没有这个类的对象),所以其main()方法也不会存。而使用static修饰符则表示该方法是静态的,不需要实例化即可使用。
一切staic的函数和变量,都先于类之前初始化或执行。
static表示该方法是类级别的,调用static方法是不需要实例化该方法所在类的。
public static void main(String[] args)方法本来就是个特殊的方法,该方法表明了java程序的入口。你把static关键字去掉后,JDK怎么识别java程序的入口呢?
如果不是静态的,那么在OS调用Main方法时,必须生成一个类的对象。