一般來說,我們用new來創建對象,這時,數據的存儲空間纔會被分配,它的方法才能被外界調用
但是,基於new方法創建對象的時候,有兩種情況不能解決
1:只想爲某特定域分配單一的存儲空間,而不考慮要創建多少對象
2:即使沒有創建類的對象,也能調用這個類的某個方法
而當我們通過static關鍵字則可以解決這方面的需求
當聲明一個事物是static時,就意味着這個域或方法不會與包含它的那個類的任何對象實例關聯在一起
static關鍵字用來聲明某成員屬於類,而不是屬於類的實例。舉個例子,如果一個類中的某個成員
被聲明爲static,那麼它就能在這個類的對象創建之前使用,而不需要實例化一個對象之後再調用
static可以修飾方法,變量,代碼塊
在靜態方法中,只能調用靜態的方法和靜態的數據;如果要調用非靜態的成員,可以用過創建類對象來調用;
於此同時,普通方法則可以調用靜態成員與非靜態成員
靜態代碼塊只會在類第一次裝載時被初始化一次,類中不同的靜態代碼塊按它們在類中出現的順序執行,並且,程序運行時
靜態初始化塊最先被執行,然後執行普通初始化塊,最後才執行構造方法。
對於靜態成員,在可訪問的情況下,可以通過“類名.成員”來調用,也可以通過創建對象的方式來調用