2025-05-17

 

一、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修飾的成員不會被加載;當成常量使用;

本文出自 “坐看雲起時” 博客

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *