日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【java】静态代码块

發布時間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【java】静态代码块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

靜態代碼塊

  • 格式:

    static

    {

    ?? 靜態代碼塊中的執行語句

    }

  • 特點:

    隨著類的加載而執行,只執行一次,用于給類進行初始化,并優先于主函數執行

    考慮如下java語句

class?StaticCode {static{System.out.println("a");} } public?class?Demo?{static{System.out.println("b");}public?static?void?main(String[]?args){new?StaticCode();new?StaticCode();System.out.println("end");}static{System.out.println("c");}}

輸出結果為:

b

c

a????? <==雖然有兩個調用StaticCode的語句,但是因為其中只包含靜態代碼塊,而靜態代碼塊只執行

????????? 一次,所以只輸出一個a

end


只有涉及到類中的內容的時候,類才會加載,靜態代碼塊才會執行

StaticCode m = null;?? <==類沒有被加載

s = new StaticCode();? <==類被加載了,因為用到了類中的構造函數StaticCode(),所以靜態代碼塊

????????????????????????? 會被執行

所以判斷一個類有沒有被加載,可以用靜態代碼塊來驗證

class?StaticCode {StaticCode(){System.out.println("c");}static{System.out.println("a");????????????I}{System.out.println("b");????????????II}StaticCode(int?x){System.out.println("hah");??????????III}public?static?void?test(){System.out.println("succeed");} } public?class?Demo?{public?static?void?main(String[]?args){new?StaticCode(5);}}

I??? -----? 靜態代碼塊給類進行初始化

II?? -----? 構造代碼塊給對象進行初始化

III? -----? 構造函數給對應對象進行初始化

輸出結果:

a

b

hah


注意:靜態代碼塊只可以訪問靜態變量

????? 構造代碼塊可以訪問到

轉載于:https://blog.51cto.com/caoyue/1620598

總結

以上是生活随笔為你收集整理的【java】静态代码块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。