static的簡單理解

2021-08-22 14:43:16 字數 866 閱讀 1354

1 . static 首先記住最重要的一點:

類屬性被static修飾,那麼它會被當做gc的乙個root根節點,作為根節點也就意味著它基本上不會被**,因此容易造成記憶體洩漏問題.

2 . static修飾類,方法,屬性

眾所周知,普通類是不能用static修飾的,只能修飾內部類

注意的是當乙個內部類沒有使用static修飾的時候,是不能直接使用內部類建立物件,須要先使用外部類物件點new內部類物件及(外部類物件.new 內部類())

public  class persons 

}public static void main(string arg0)

如果內部類沒有用static修飾那麼**如下

public  class persons 

}public static void main(string arg0)

static修飾方法稱為靜態方法,靜態方法不依賴於任何物件就可以進行訪問,因此對於靜態方法來說,是沒有this的,因為它不依附於任何物件,既然都沒有物件,就談不上this了

static修飾的方法內部不能夠呼叫非靜態方法, 反之非靜態方法可以呼叫靜態方法

public class persons 

public static void print2()

}

static變數也稱作靜態變數,靜態變數和非靜態變數的區別是:靜態變數被所有的物件所共享,在記憶體中只有乙個副本,它當且僅當在類初次載入時會被初始化。而非靜態變數是物件所擁有的,在建立物件的時候被初始化,存在多個副本,各個物件擁有的副本互不影響。

static成員變數的初始化順序按照定義的順序進行初始化。

Static的個人理解

對於 static 相信大家對此並不會感覺到陌生吧,因為任何的程式都應該具有乙個 main 大家還記得吧。public static void main string args 這樣就定義了乙個靜態的 main 方法,但是在用的同時很少真正去研究它為什麼要定義成 static 或者說這樣的好處是什麼...

extern和static的理解

extern可置於變數或者函式前,以表示變數或者函式的定義在別的檔案中,提示編譯器遇到此變數或函式時,在其它模組中尋找其定義。我們要在檔案1中定義了乙個變數,而在檔案2中需要用到,這該怎麼辦?只需要在使用時在變數前面加上extern即可,提示編譯器這是從另乙個檔案中分拿出來的變數。不過這裡需要注意一...

C 中static的理解

c 中static的用法可以分為兩個大類 c風格的static的使用和c 風格的static的使用。一 c風格的static的使用 1 區域性靜態變數 c風格的區域性靜態變數是在某個函式中定義的static變數,該變數只會被初始化一次,一直存在到程式結束。與普通區域性變數的區別是,只會初始化一次,函...