main方法为什么是静态的

main函数其实也是所在类的一个方法,就比如一个类是test,那么该类的main其实就是test.main(String[] args),众所周知如果一个方法不是静态的,则要先实例化该类,比如要这样 test t=new test(); 
然后才能调用 test.main(); 
而这对于运行一个程序的主函数来说是不现实的,所以比如把main函数定义为static,使test.main()可以直接被调用。

 

因为是程序入口啊  
不然你从哪里开始new对象 ?

 

所有static成员都是在程序装载时初始化的,被分配在一块静态存储区域。这个区域的成员一旦被分配,就不再改变地址啦。直到程序结束才释放。
main()就存储在这里。
尽管包含main()的类还没有被实例化,但是main()方法已经可以使用啦。 

我觉得这个解释比较合理,另外常驻内存的方式就是使用static,而且main方法是程序的入口,是启动
Java虚拟机的,所以也没有太多的讨论的价值!

 

如果main不是静态,在一个Test类下面,我们怎么运行呢。 
Test t=new Test(); 
t.main(); 
这样程序才能运行,....这样不是很麻烦么

 

程序的入口; 
如果整个程序没有一个静态方法, 你怎么启动她?

posted on 2017-02-08 11:28  liushao  阅读(3740)  评论(0编辑  收藏  举报

导航