亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java類的構造方法一定會執行嗎?

java類的構造方法一定會執行嗎?

拉風的咖菲貓 2019-03-28 22:19:02
我寫了一個類,但是程序中沒有聲明這個類的對象。但是這個類中有個靜態的變量,我直接通過類名來操作靜態變量。。。這種情況下,這個類的構造方法是不是就不會執行?還有,是不是不管是不是聲明類的對象,對這個靜態變量都沒有影響?
查看完整描述

5 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

對的, 你的理解沒有錯. 靜態變量屬于類本身, 不屬于對象, 因此直接使用類名來操作靜態變量, 是不會導致這個類的構造方法執行的.

還有,是不是不管是不是聲明類的對象,對這個靜態變量都沒有影響?

對的. 還是那句話, 靜態變量是類的屬性, 和這個類的對象沒有關系. 所有的對象都共用一個此類的靜態變量, 因此不論是否有實例化對象, 都不影響這個靜態變量的使用.


查看完整回答
反對 回復 2019-04-25
?
手掌心

TA貢獻1942條經驗 獲得超3個贊

區別開類型和實例


查看完整回答
反對 回復 2019-04-25
?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

Java程序對類的使用方式:

  • 主動使用

  • 被動使用

所有的Java虛擬機實現必須在每個類或接口被Java程序首次主動使用時才初始化他們。

主動使用:

  • 創建類的實例

  • 訪問某個類或接口的靜態變量,或者對該靜態變量賦值

  • 調用類的靜態方法

  • 反射

  • 初始化一個類的子類

  • Java虛擬機啟動是被標明為啟動類的類

除了以上六中情況,其他對類的使用都是被動使用,都不會導致類的初始化。當訪問一個類的編譯時靜態常量的時候,并不會導致類的初始化,即編譯時就已經確定值的常量


查看完整回答
反對 回復 2019-04-25
?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

靜態變量與代碼塊是先于構造器加載,且只加載一次,類似的當作一個全局變量來理解,雖然java是沒有全局變量。


查看完整回答
反對 回復 2019-04-25
  • 5 回答
  • 0 關注
  • 1040 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號