当前位置: 代码迷 >> Java相关 >> java中的main函数前的static为什么一定要加呢?该怎么处理
  详细解决方案

java中的main函数前的static为什么一定要加呢?该怎么处理

热度:1113   发布时间:2013-02-25 21:45:51.0
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修饰的方法,无须产生类的实例对象就可以调用该方法。
没有static修饰的方法,需要产生一个类的实例对象才可以调用该方法。
main方法必须要static来修饰,是因为main方法是Java解释器调用的,那时候还没有任何对象产生。

------解决方案--------------------------------------------------------
static修饰的方法,类等,都是在程序启动时就加载的,而且方法无需类的实例就可以直接调用,main方法是程序的入口,所以是必须提前加载好的,然后才能是接下来的程序正常运行,此外,static有这个特点,也就是说,可以没有main方法而执行某些代码。不信,你可以试试
------解决方案--------------------------------------------------------
学习,main是整个程序的入口,如果没有static就找不到
------解决方案--------------------------------------------------------
探讨
mainID = (*env)->GetStaticMethodID(env, mainClass, "main",
                                      "([Ljava/lang/String;)V");
这是jvm启动时的代码,直接去找static的,参数为String数组的main方法。


------解决方案--------------------------------------------------------
static就是说明这是个静态的方法....
正在学习....
------解决方案--------------------------------------------------------
static方法是属于类的,在类创建的时候就产生在内存中了。可以直接使用,普通方法的话是属于类对象的,必须有对象来调用。mian是入口函数,用static来定义。
  相关解决方案