static java詳解

我們知道,當我們通過new關鍵字去創建對象的時候,那麼數據的存儲空間纔會被分配,類中的成員方法才能被對象所使用。但是呢有兩種特殊的情況:1、我們通過new關鍵字創建的對象共享同一個資源,而不是說每個對象都擁有自己的數據,或者說根本就不需要去創建對象,這個資源和對象之間是沒有關係的。2、希望某個方法不與包含它的類的任何對象聯繫在一起。總結下來就是說:即使沒有創建對象,也能使用屬性和調用方法,static目的就是在於解決這個問題。

特點

一  static可以修飾變量,方法

二 被static修飾的變量或者方法是獨立於該類的任何對象,也就是說,這些變量和方法不屬於任何一個實例對象,而是被類的實例對象所共享。

三 在類被加載的時候,就會去加載被static修飾的部分。

四 被static修飾的變量或者方法是優先於對象存在的,也就是說當一個類加載完畢之後,即便沒有創建對象,也可以去訪問。

static靜態變量

被static修飾的成員變量叫做靜態變量,也叫做類變量,說明這個變量是屬於這個類的,而不是屬於是對象,沒有被static修飾的成員變量叫做實例變量,說明這個變量是屬於某個具體的對象的。

靜態變量和實例變量的區別

實例變量:每次創建對象,都會爲每個對象分配成員變量內存空間,實例變量是屬於實例對象的,在內存中,創建幾次對象,就有幾份成員變量。

static靜態方法

被static修飾的方法也叫做靜態方法,因爲對於靜態方法來說是不屬於任何實例對象的,那麼就是說在靜態方法內部是不能使用this的,因爲既然不屬於任何對象,那麼就更談不上this了。

static應用場景

如果某個成員變量是被所有對象所共享的,那麼這個成員變量就應該定義爲靜態變量。

static使用注意事項

在靜態方法中沒有this關鍵字因爲靜態是隨着類的加載而加載,而this是隨着對象的創建而存在的。

靜態比對象優先存在。靜態可以訪問靜態的,但是靜態不能訪問非靜態的。

非靜態的可以去訪問靜態的。

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