JAVA基礎--final、static區別以及類加載順序

一、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修飾的成員不會被加載;當成常量使用;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章