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

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

static 關鍵字在這里做什么?

static 關鍵字在這里做什么?

繁星coding 2022-05-21 20:16:19
我是java初學者。我正在嘗試這段代碼,我在類本身中創建了類的實例。它給了我堆棧溢出錯誤。然后,我在類中將引用變量設為“靜態”,現在它工作正常。我的問題是靜態關鍵字在這里做什么?我知道靜態變量是只加載一次的類變量。但是,構造函數調用是否也應該進入對自身的遞歸調用?我無法從我對靜態關鍵字的了解中得到任何答案。
查看完整描述

2 回答

?
人到中年有點甜

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

你有類似的東西(不能復制/粘貼屏幕截圖!)

 class A {    
  private A a = new A();
 }

A因此,要在調用時創建一個實例,必須通過再次調用new A()來設置值。無限遞歸(直到你用完堆??臻g)。this.anew A()

當您將該字段a設置為靜態時,它不再在A構造實例時初始化,而是在加載類本身時僅初始化一次。


查看完整回答
反對 回復 2022-05-21
?
偶然的你

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

當類被初始化并且它有一個自己類型的成員時,成員本身被初始化為內部相同的成員,并且成員內部的這個成員被初始化......你看到這里的無限遞歸了嗎?這就是您收到堆棧溢出錯誤的原因。

static關鍵字使該成員不是類的一部分。它在全局上下文中初始化一次(例如,您不需要 D1 的實例來訪問它。您鍵入 D1.obj 代替)。所以遞歸不會在這里發生。


查看完整回答
反對 回復 2022-05-21
  • 2 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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