java的main函数为什么一定要static来修饰

avatar 2017年3月26日10:43:45 评论 82 views

答1:

static静态的,也就是程序运行时就要没加载的,main是一个程序的入口,所以要提前加载好,要不谁来调用它啊?程序就没法运行了。

 

答2:

用static修饰的方法,无须产生类的实例对象就可以调用该方法。

没有static修饰的方法,需要产生一个类的实例对象才可以调用该方法。

main方法必须要static来修饰,是因为main方法是Java解释器调用的,那时候还没有任何对象产生。

 

答3:

mainID = (*env)->GetStaticMethodID(env, mainClass, "main","([Ljava/lang/String;)V");
这是jvm启动时的代码,直接去找static的,参数为String数组的main方法。

 

答4:

static修饰的方法,类等,都是在程序启动时就加载的,而且方法无需类的实例就可以直接调用,main方法是程序的入口,所以是必须提前加载好的,然后才能是接下来的程序正常运行,此外,static有这个特点,也就是说,可以没有main方法而执行某些代码。不信,你可以试试

  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: