1. 程式人生 > >C和Java中static修飾符的作用

C和Java中static修飾符的作用

C中的static

C語言中的static作用有兩個:其一,增加區域性變數的生命週期,將其升級為全域性變數;其二,宣告變數或常量不可被其他檔案直接引用,必須通過標頭檔案包含的方式。
-----------------------------------------------------------------------------

Java中的static

靜態域

static修飾物件域時,我們稱其為靜態域。對於靜態域而言,static起到了資源共享的作用。當我們在構造物件時,沒有用static修飾的域,對於每一個物件都擁有自己的相應的那個域;而用static修飾的域,則意味著所有的物件共享這一個域,對任意一個物件的這個靜態域進行修改都會使所有的物件的這個域發生改變,所以實現了一種類似於全域性變數的作用。


-----------------------------------------------------------------------------

靜態常量

靜態常量即在原有的final常量基礎上再加上static,其本身還是起到一種共享的作用。比如我們可以用static和final定義PI=3.14……這樣的一個經常用的具有固定值的常量,這樣在用到PI的時候不用每次在臨時建立一個double型別的常量,而直接呼叫這個值就可以了。這個用法還可以減少JVM的記憶體回收壓力。
-----------------------------------------------------------------------------

靜態方法

靜態方法表現為其呼叫不需要依賴物件的繫結,可以直接由類名引導方法的執行,比如System.out.println(),呼叫的就是System類中的out.println() 方法,而這個方法顯然沒有依賴於任何物件而執行。