第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

對靜態(tài)初始化塊和普通初始化塊的運行問題。

public?class?Demo1{
?int?a;
?static{
?a=1;
?System.out.println("通過靜態(tài)初始化塊為變量a賦值:"+a);
?}
?public?static?void?main(String[]?args){
?}
}
運行結(jié)果:
通過靜態(tài)初始化塊為變量a賦值:1
問題:我在main方法里什么都沒有聲明和調(diào)用,系統(tǒng)怎么就可以運行該靜態(tài)初始化塊呢?
public?class?Demo2{
?int?b;
?int?c;
?public?Demo2{
??b=7;
??System.out.println("通過構(gòu)造方法為變量b賦值:"+b);
?}
?{
???c=9;
???System.out.println("通過初始化塊為變量c賦值:"+c);
?}
?public?static?void?main(Sting[]?args){
??Demo2?hello2=new?Demo2();
?}
}
運行結(jié)果:
通過初始化塊為變量c賦值:9
通過構(gòu)造方法為變量b賦值:7
問題:在main方法中我只調(diào)用了構(gòu)造方法,為什么普通初始化塊也會運行呢?從哪里運行的呢?望高手解答,謝謝!


正在回答

3 回答

靜態(tài)初始化代碼塊在 .class字節(jié)碼加載進內(nèi)存時,就開始運行了。

普通初始化塊先于構(gòu)造方法執(zhí)行。


0 回復(fù) 有任何疑惑可以回復(fù)我~

靜態(tài)代碼塊 > 構(gòu)造代碼塊 > 構(gòu)造方法

0 回復(fù) 有任何疑惑可以回復(fù)我~

第16行構(gòu)造方法少寫了()

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
Java入門第二季 升級版
  • 參與學習       531097    人
  • 解答問題       6276    個

課程升級!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會Java面向?qū)ο缶幊痰膴W妙

進入課程

對靜態(tài)初始化塊和普通初始化塊的運行問題。

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號