一、static關鍵字
1.static可以修飾類、變量、方法、靜態代碼塊
2.被static修飾的變量是對象公共的變量,當其中一個對象改變其值時,其它對象中該變量的值也會跟着改變
3.父類中被static修飾的方法不能重寫,只能被繼承,當父類中方法被static 修飾時,繼承它的子類同名的方法必須也被static修飾
被static修飾的變量和方法可以直接被類名調用
4.static修飾靜態代碼塊 static {}
1)靜態代碼塊位於類中,當java編譯時將從class文件加載到JAVA虛擬機時就執行了靜態代碼塊,靜態代碼塊的作用是完成一些初始化的工作。new 一個對象時,首先執行其父類中的靜態代碼塊,然後再執行子類中的靜態代碼塊,執行完靜態代碼塊後再執行父類的構造方法,然後再執行子類的構造方法;靜態代碼塊是在類被加載時執行的,而構造方法是在生成對象的時候執行。要想調用某個類生成對象,首先要將類加載到JAVA虛擬機中(JVM),然後JVM加載這個類生成對象。
2)類的靜態代碼塊只會執行一次,是在類被加載的時候執行的,因爲每個類只會被加載一次,所以靜態代碼塊也只會被執行一次。而構造方法,每生成一個對象時,執行一次。
5、 靜態的只能訪問和使用靜態的,非靜態的可以訪問一切
1)不能在一個靜態的方法中訪問一個非靜態的成員變量
2)可以在一個靜態的方法中訪問一個靜態的成員變量
3)可以在一個非靜態的方法中訪問一個非靜態的成員變量
4)可以在一個非靜態的方法中訪問一個靜態的成員變量
6、不能在靜態方法中使用this關鍵字
二、final關鍵字
1.final可以修飾類、變量、方法
2、final修飾的類叫做“終類”,final修飾一個引用類型時,表示該引用類型不能再指向其他對象了(不能被重新生成新的對象),但該引用所指向的對象的內容(變量或方法)可以發生變化
3、被final修飾的變量稱爲“常量”,聲明時必須賦值,且賦值後不能被改變或重新賦值;