1、靜態方法:需要在項目啟動的時候就初始化,在不創建對象的情況下,這種代碼是被動執行的(靜態方法在類加載的時候 就已經加載 可以用類名直接調用)
使用類的靜態方法時,注意:
a、在靜態方法里只能直接調用同類中其他的靜態成員(包括變量和方法),而不能直接訪問類中的非靜態成員(這是因為,對于非靜態的方法和變量,需要先創建類的實例對象后才可使用,而靜態方法在使用前不用創建任何對象)
b、 靜態方法不能以任何方式引用this和super關鍵字,因為靜態方法在使用前不用創建任何實例對象,當靜態方法調用時,this所引用的對象根本沒有產生。
c、靜態變量是屬于整個類的變量而不是屬于某個對象的。注意不能把任何方法體內的變量聲明為靜態
2、靜態代碼塊:有些代碼必須在項目啟動的時候就執行,這種代碼是主動執行的(當類被載入時,靜態代碼塊被執行,且只被執行一次,靜態塊常用來執行類屬性的初始化)
3、區別:兩者的區別就是:靜態代碼塊是自動執行的; 靜態方法是被調用的時候才執行的.