一、JAVA中final 與 static 總結 | ||
final | static | |
修飾類 | 該類不可被繼承 | 只能修飾內部類,該類不需要new,是靜態加載(嵌套頂層類) |
修飾接口 | × | × |
修飾構造函數 | × | × |
修飾語句塊 | × | 虛擬機按聲明順序初始化static成員字段和static語句塊 |
修飾字段屬性 | 表示屬性初始化後不能修改(實例常量) | 是類變量,所有實例共享該變量值(類變量) |
在定義時或構造函數中賦值(每個實例擁有一份拷貝) | ||
修飾方法 | 該方法不能被覆蓋(只可繼承) | 是類方法,所有實例共享該方法(類方法) |
修飾函數參數 | 參數值不能被函數修改 | × |
修飾函數局部變量 | 局部變量初始化後不能修改(局部常量) | × |
用途 | 1).爲了防止方法被覆蓋或改寫; | 1).定義全局變量或常量; |
2).提高運行效率,JAVA對final方法調用採用內嵌機制; | 2).定義類方法; | |
二、JAVA類加載順序 | ||
JAVA類加載順序: | 1).按代碼順序遞歸加載靜態成員/代碼塊,先父類再本類; | |
2).按代碼順序遞歸加載非靜態成員/代碼塊,先父類再本類; | ||
3).按代碼順序遞歸調用構造函數,先父類再本類; | ||
JAVA類加時機: | 1).調用靜態成員時,加載靜態成員所在的類及父類; | |
2).第一次new對象時加載(第二次new不再加載) | ||
3).加載子類會先加載父類.有static和final修飾的成員不會被加載;當成常量使用; |
JAVA基礎--final、static區別以及類加載順序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.