首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 接口字段初始化:隱式 static final、非常數表達式與類加載時機

     編輯:Java 相關知識

接口字段本質

接口中定義的字段自動具備 static 和 final 屬性,即編譯期常數(但可非常數表達式初始化)。

非常數表達式初始化示例

public interface RandVals {
    int rint = (int)(Math.random() * 10);
    long rlong = (long)(Math.random() * 10);
    float rfloat = (float)(Math.random() * 10);
    double rdouble = Math.random() * 10;
}

字段在類首次加載時初始化(首次訪問任意字段前),而非編譯期。每次運行程序值不同。

測試驗證

public class TestRandVals {
    public static void main(String[] args) {
        println(RandVals.rint);    // 每次運行輸出不同
        println(RandVals.rlong);
        println(RandVals.rfloat);
        println(RandVals.rdouble);
    }
}

關鍵點總結

  • 接口字段 = public static final,無需顯式聲明。
  • 可用非常數表達式(方法調用、運算)初始化,運行期執行。
  • 初始化時機:類加載時(首次主動使用),非編譯期。
  • 字段不屬於接口實例,存儲於接口的靜態存儲區。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved