體形式如: 類名.方法名
而實例化時必須使用new關鍵字,具體格式如:
ArrayList one=new ArrayList();
靜態是類的,實例是對象的.oo的觀點就是靜態成員就是類所有對象所具備的特點,而實例成員是每個對象自有的實現,是不一樣的.比如說每個人都有頭發,眼睛,耳朵,名字,性別,年齡,身高等等.這些都是靜態的,但是每個人的這些屬性是不一樣的,這些不同的屬性就是實例化.所以也可以說靜態方法不需要依賴類當中的屬性,靜態方法本身就可以封閉的完成一個功能,而實例的方法更多會用到類中的屬性.
靜態方法在它一啟動的時候就實例化了,因而靜態內存是連續的,而且靜態內存是有限制的;而實例方法是在程序運行中生成內存的,實例申請的是離散的空間.靜態方法大多用的數據連接上.
關於靜態方法和實例方法的一些誤區。 一、 靜態方法常駐內存,實例方法不是,所以靜態方法效率高但占內存。 事實上,方法都是一樣的,在加載時機和占用內存上,靜態方法和實例方法是一樣的,在類型第一次被使用時加載。調用的速度基本上沒有差別。 二、 靜態方法在堆上分配內存,實例方法在堆棧上。 事實上所有的方法都不可能在堆或者堆棧上分配內存,方法作為代碼是被加載到特殊的代碼內存區域,這個內存區域是不可寫的。 三、 實例方法需要先創建實例才可以調用,比較麻煩,靜態方法不用,比較簡單。 事實上如果一個方法與他所在類型的實例無關,那么它就應該是靜態的,決不會有人把它寫成實例方法。所以所有的實例方法都與實例有關,既然與實例有關,那么創建實例就是必然的步驟,沒有...
靜態方法中的代碼只能使用類的靜態成員,而不能直接使用非靜態成員。這是因為靜態方法屬於類所有,在其中不能判斷非靜態成員究竟屬於那個對象。而實力方法既能夠使用靜態成員,也能夠使用非靜態成員。
靜態構造函數
實例構造函數屬於對象所有,而是用static修飾符的靜態構造函數為類的所有對象共享,並且只在首次使用該類時被調用。
