java中的main函数前的static为什么一定要加呢?
今天老师这个问题吓住了我,从没想过这个问题,问问大家对这个问题有什么看法
------解决方案--------------------static静态的,也就是程序运行时就要没加载的,main是一个程序的入口,所以要提前加载好,要不谁来调用它啊?程序就没法运行了。
------解决方案--------------------楼上的正解,程序的入口需要提前准备好
------解决方案--------------------用static修饰的方法,无须产生类的实例对象就可以调用该方法。
没有static修饰的方法,需要产生一个类的实例对象才可以调用该方法。
main方法必须要static来修饰,是因为main方法是Java解释器调用的,那时候还没有任何对象产生。
------解决方案--------------------mainID = (*env)->GetStaticMethodID(env, mainClass, "main",
"([Ljava/lang/String;)V");
这是jvm启动时的代码,直接去找static的,参数为String数组的main方法。
------解决方案--------------------
------解决方案--------------------static修饰的方法,类等,都是在程序启动时就加载的,而且方法无需类的实例就可以直接调用,main方法是程序的入口,所以是必须提前加载好的,然后才能是接下来的程序正常运行,此外,static有这个特点,也就是说,可以没有main方法而执行某些代码。不信,你可以试试
------解决方案--------------------学习,main是整个程序的入口,如果没有static就找不到
------解决方案--------------------
------解决方案--------------------static就是说明这是个静态的方法....
正在学习....
------解决方案--------------------static方法是属于类的,在类创建的时候就产生在内存中了。可以直接使用,普通方法的话是属于类对象的,必须有对象来调用。mian是入口函数,用static来定义。