日期:2014-05-20  浏览次数:20587 次

问一个,大家都会的问题(我有点迷糊),关于main的问题
就是在java中main方法public static void main(String[] args){}....mainc里面的参数我们在运行的时候并没有给值,为什么这个方法还会执行,就像 类方法里面的一个成员方法,public void set(int i){},我们想调用这个方法还得创建对象,都过对象名.set(5)的方法来赋一个值5,那么为什么我们这使用main方法时没有给它赋一个字符串数组的值,它也能运行呢?? 


------解决方案--------------------
main是java程序外部付的值。
具体得了解JVM的机制。
程序里很少有人自己调main函数的。 (不是没有哦。。。)
------解决方案--------------------
可以给main方法赋值的,你可以百度一下,这样的例子很多
------解决方案--------------------
没有值的话,默认就用null呀。
------解决方案--------------------
main方法接受的是数组参数,并由jvm自动调用,其参数由jvm构建传递,并非没有传入参数
------解决方案--------------------
程序执行的过程实际上就是main函数被调用的过程,只不过这里调用main函数的不是用户,而是JVM自身。

至于参数args,则是JVM将程序的命令行参数分拆到一个数组里传给main函数而已。(实际的运行过程要更复杂,但作为Java程序员了解到这层面就可以了,应该把精力放到更重要的知识上)

PS:main函数当作程序入口(被JVM调用)时参数args不会传入null,如果没有参数的话args将是一个空数组。
探讨

没有值的话,默认就用null呀。