java中static的特點和使用

看到main方法前面的public static void。作爲一個初學者不禁會想爲什麼main會有一個static去修飾,這就需要我們去了解一下static的特點和用法了。
static的基本含義是靜態的,不會隨着類中對象的實例化而產生新的變化,static在類中,內存是共享的,每個實例使用它時實際內存都是那一個內存,這一點其實和c++是類似的。static是一個修飾符,可以去修飾方法和屬性,以及內部類。
static的特點:
1.靜態的成員會優先於對象存在,也就是在類實例化對象之前靜態成員就已經存在了。
2.靜態成員的空間爲所有該類的對象共享,所有對象操作的都是這一個static屬性。
3.因爲上述的原因,由於所有對象使用的都是這樣一個靜態成員,所以可以用類名.靜態成員去使用。
4.靜態方法只能訪問靜態屬性,而靜態屬性可以被非靜態方法訪問。
5.靜態方法中不能由this和super關鍵字。this和super關鍵字都是針對對象的而不是類的,而靜態方法是先於對象存在的,所以不能用this和super來對當前和父類對象操作。
6.靜態方法和靜態屬性都可以被繼承,但是靜態方法不能被重寫,被繼承後可以直接父類.靜態方法來調用。
實際上,靜態變量是類變量,是屬於類的,生命週期和類一同,即隨着類的加載而加載,隨着類的消失而消失,爲類所共有。而非靜態屬性是屬於對象的,生命週期和對象一樣,隨着對象生成而生成,隨着對象消失而消失,爲對象所特有。
靜態方法由於不需要實例化對象就可以使用,所以經常可以用於類庫中類的方法來讓別的類方便使用。
所以迴歸剛開始的問題,java的主方法要用是static,由於static方法可以不必實例化就能直接調用,JVM不用實例化main方法就可以調用,並且static方法不能重載,這樣JVM調用時就不容易出錯,所以main方法用static。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章