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

static初始化和賦值 linux系統(tǒng)中,初始化的全局變量和未初始化過的全局變量保存在哪?

linux系統(tǒng)中,初始化的全局變量和未初始化過的全局變量保存在哪?由C/C編譯的程序所占用的內(nèi)存分為以下幾部分:1。堆棧由編譯器自動分配和釋放,存儲函數(shù)參數(shù)和局部變量的值。其操作類似于數(shù)據(jù)結(jié)構(gòu)中的堆棧

linux系統(tǒng)中,初始化的全局變量和未初始化過的全局變量保存在哪?

由C/C編譯的程序所占用的內(nèi)存分為以下幾部分:1。堆棧由編譯器自動分配和釋放,存儲函數(shù)參數(shù)和局部變量的值。其操作類似于數(shù)據(jù)結(jié)構(gòu)中的堆棧。2堆通常由程序員分配和釋放。如果程序員沒有釋放堆,那么在程序結(jié)束時,操作系統(tǒng)可能會恢復堆。注意,它在數(shù)據(jù)結(jié)構(gòu)上與heap不同。分配方法類似鏈表,哈哈。三。全局區(qū)域(靜態(tài))-將全局變量和靜態(tài)變量的存儲放在一起。初始化的全局變量和靜態(tài)變量在一個區(qū)域中,未初始化的全局變量和未初始化的靜態(tài)變量在另一個相鄰區(qū)域中。-程序完成后,由系統(tǒng)發(fā)布。4文本常量區(qū)域-常量字符串放在這里。程序完成后,系統(tǒng)發(fā)布5。程序代碼區(qū)-函數(shù)體的二進制代碼。

static變量什么時候初始化?

它只執(zhí)行一次

復制:

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

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

大致原理:

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

應用程序:

對于您的問題:

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

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