首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 基礎疑問:final 靜態欄位、static 區塊與作用域解析

     編輯:程式設計綜合問答

代碼片段:

public class MyOwenTest {
    public static final String test1 = "a";
    static {
        String test1 = "a"; // 區域變數
        String test2 = "a";
        String test3 = "a";
    }
}

三個問題解答

  1. 兩個 test1 不衝突:類欄位 test1 屬於類作用域;static 區塊內的 test1 為區域變數,僅在區塊內有效,編譯器視為不同符號。
  2. static {} 為靜態初始化區塊:類載入時由 JVM 自動執行,用於複雜靜態欄位初始化、註冊驅動等,優於建構子執行。
  3. 類似結構:instance initializer {}(實例初始化區塊,每次 new 物件執行)、constructor(建構子)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved