国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

static變量只能初始化一次嗎 static變量什么時候初始化?

static變量什么時候初始化?只執(zhí)行一次復制:可以添加到學生類的構造函數(shù)中,例如:運行時會發(fā)現(xiàn)只打印一次大致原理:靜態(tài)變量是類變量,第一次使用類時只初始化一次。類裝入器中會有一個鎖,以防止類被多次初

static變量什么時候初始化?

只執(zhí)行一次

復制:

可以添加到學生類的構造函數(shù)中,例如:

運行時會發(fā)現(xiàn)只打印一次

大致原理:

靜態(tài)變量是類變量,第一次使用類時只初始化一次。類裝入器中會有一個鎖,以防止類被多次初始化。靜態(tài)字段和靜態(tài)代碼塊只執(zhí)行一次。從編譯器的角度來看,編譯時編譯器會按順序收集靜態(tài)字段和靜態(tài)代碼塊,然后將其放入生成的<cinit>特殊方法中,初始化類時會調用<cinit>方法。

應用程序:

對于您的問題:

在前一個線程初始化之后,判斷它是否已成功初始化,并直接獲取結果

您的問題有點有趣。前一個線程的初始化可以說是取鎖,然后執(zhí)行鎖代碼。當鎖退出時,鎖代碼的結果將完全同步,這是鎖的一個特性(比如內存可見性)。然后下一個字段結果就是正常結果

靜態(tài)int只初始化一次,但可以多次修改。靜態(tài)變量屬于靜態(tài)存儲模式。它的存儲空間是內存中的靜態(tài)數(shù)據(jù)區(qū)。在程序運行期間,此區(qū)域中的數(shù)據(jù)一直占用這些存儲空間。

staticint只能賦初值嗎?

靜態(tài)變量是靜態(tài)的,因為它的地址在程序的整個生命周期中都是靜態(tài)的。也就是說,整個程序只保留一個副本。static關鍵字允許它在不同的函數(shù)調用之間保持其值。如果靜態(tài)變量的值在被訪問后發(fā)生變化,它將保留新值。如果再次訪問該變量,它將保持最新的值classA{公共:私人:}inta::I=1//類的靜態(tài)變量必須用這種方式初始化。類成員函數(shù)的靜態(tài)變量只能在該函數(shù)中使用。

兩者都在程序的數(shù)據(jù)區(qū)和全局變量區(qū)生成。

類中的static變量什么時候初始化?

如果我們不考慮父類,我們可以先進行靜態(tài)初始化,然后進行非靜態(tài)初始化。

靜態(tài)初始化包括靜態(tài)成員變量和靜態(tài)塊的初始化。實際上,靜態(tài)塊在編譯期間是集中的。

非靜態(tài)初始化包括非靜態(tài)成員變量初始化、非靜態(tài)塊和構造方法,編譯后集中在構造方法中。

如果沒有相互通話,那就非常簡單了。首先,靜態(tài)初始化。如果在靜態(tài)初始化過程中調用了后者呢?!你可以編寫一個代碼來測試它:

輸出:

你可以先看到它確實是靜態(tài)初始化,但是中間有對構造方法的調用。

雖然編譯器不報告錯誤,但此調用實際上是有風險的。

由于靜態(tài)成員變量(如果已設置)在初始化之前調用類構造函數(shù)(假設存在依賴關系),因此該過程實際上是不可控制的。

看看這個例子:你能想象這種輸出嗎?

因此,如果必須在靜態(tài)初始化過程中調用此類的構造函數(shù)。

一定要注意初始化順序,準確到語句。