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();
這樣程序才能運行,....這樣不是很麻煩么
程序的入口;
如果整個程序沒有一個靜態方法, 你怎么啟動她?
