【java】静态代码块
生活随笔
收集整理的這篇文章主要介紹了
【java】静态代码块
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
靜態代碼塊
格式:
static
{
?? 靜態代碼塊中的執行語句
}
特點:
隨著類的加載而執行,只執行一次,用于給類進行初始化,并優先于主函數執行
考慮如下java語句
輸出結果為:
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】静态代码块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C/C++中传值和传地址(引用)
- 下一篇: c#学习笔记之第一个程序“Hello w