1. 程式人生 > >java static關鍵字

java static關鍵字

1、概念
static方法就是沒有this,在static方法內部不能呼叫非靜態方法,反之可以。而且可以在沒有建立任何物件的情況下通過類本身呼叫靜態方法,這實際上是靜態方法的主要用途。簡而言之,在沒有建立物件的情況下來進行呼叫靜態方法或者變數。

2、static方法
static稱為靜態方法,不依賴於物件呼叫,沒有this,所有靜態方法的內部不能訪問類的非成員變數和非成員方法,因為成員變數和方法都依賴於物件去呼叫。(但是非靜態方法內部可以呼叫靜態方法)。

3、static變數
static變數稱為靜態變數,類初次載入時會被初始化,在記憶體中只有一個。

4、static程式碼塊
static靜態程式碼塊用來優化效能,因為他只有在類初始化載入的時候被執行一次,所有可以把一些只需要進行一次初始化的操作放在靜態程式碼塊中,節約了記憶體資源。

5、靜態方法或者靜態變數雖然獨立於物件存在,但是他們是被所有物件所共享,可以通過物件(this)訪問(只要許可權足夠)。

6、static不能用來修飾區域性變數

7、靜態方法和變數是屬於類的方法和變數,靜態方法和變數可以被子類所呼叫,但並不能說靜態方法和靜態變數被子類所繼承,子類呼叫的還是父類的靜態方法和變數。如果子類中有和父類同名的靜態方法和變數,這時候通過子類呼叫同名的靜態方法和變數呼叫的是子類本身的靜態方法和變數,父類的會被隱藏。

8、靜態方法不會被重寫,因為他是屬於類的,不是屬於類的例項的,所以如果父類和子類有相同靜態方法,通過父類的引用指向子類的物件的時候不會存在多型,呼叫的方法會是引用的父類中的靜態方法。