卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

靜態(tài)變量和局部變量的區(qū)別 什么是靜態(tài)變量,靜態(tài)變量=全局變量,動態(tài)變量=局部變量嗎?

什么是靜態(tài)變量,靜態(tài)變量=全局變量,動態(tài)變量=局部變量嗎?局部變量與其他三個基本不同。局部變量在函數(shù)中定義,范圍是定義位置,以花括號結束。每次執(zhí)行definition語句時,系統(tǒng)都會為變量分配內(nèi)存。當

什么是靜態(tài)變量,靜態(tài)變量=全局變量,動態(tài)變量=局部變量嗎?

局部變量與其他三個基本不同。局部變量在函數(shù)中定義,范圍是定義位置,以花括號結束。每次執(zhí)行definition語句時,系統(tǒng)都會為變量分配內(nèi)存。當作用域結束時,內(nèi)存被釋放。另外三個在系統(tǒng)運行時分配內(nèi)存,直到程序結束才會釋放。也就是說,局部變量與其他三個變量最明顯的區(qū)別是:[1]不同的生命周期

2]不同的分配時間

3]不同的分配位置。然而,其他三個在范圍上是相同的。全局變量,整個項目的作用域,無論在哪個文件中,只要聲明就可以使用。一個靜態(tài)全局變量,其作用域是定義變更量的文件。靜態(tài)局部變量的作用域與普通局部變量的作用域相同。靜態(tài)局部變量是在函數(shù)中定義的,但它們在調(diào)用時不存在,在退出函數(shù)時消失,如自動變量。靜態(tài)局部變量總是存在的,也就是說,它的生命周期就是整個源程序。(2) 雖然靜態(tài)局部變量的生存期是整個源程序,但它的作用域仍然與自動變量的作用域相同,即只能用于定義變量的函數(shù)中。退出函數(shù)后,雖然變量繼續(xù)存在,但不能使用。(3) 對于基本類型的靜態(tài)局部變量,如果初始值未賦值,系統(tǒng)將自動賦值為0。如果自動變量沒有給定初始值,則其值是不確定的。根據(jù)靜態(tài)局部變量的特點,可以看出它是一種以整個源文件為生命周期的量。雖然在離開定義它的函數(shù)后不能使用它,但是如果再次調(diào)用定義它的函數(shù),并且保存上次調(diào)用后留下的值,則可以繼續(xù)使用它。因此,當一個函數(shù)被多次調(diào)用并且在調(diào)用之間需要保留一些變量的值時,可以考慮靜態(tài)局部變量。雖然使用全局變量也可以達到上述目的,但全局變量有時會產(chǎn)生意想不到的副作用(特別是短全局變量的污染),因此使用局部靜態(tài)變量仍然是合適的??傊?,靜態(tài)局部變量和全局變量最明顯的區(qū)別是全局變量的所有函數(shù)定義后都可以使用,而靜態(tài)局部變量只能在一個函數(shù)中使用。

全局變量和靜態(tài)局部變量有什么區(qū)別?

靜態(tài)全局變量:只要程序系統(tǒng)正在運行,則寄存器及其值不會自動清除,并且在任何函數(shù)中都可以使用靜態(tài)局部變量:只要程序系統(tǒng)正在運行,則寄存器及其值不會自動清除,僅在定義的函數(shù)范圍內(nèi)可以使用靜態(tài)全局變量:只有在函數(shù)操作行中,寄存器及其值隨函數(shù)結尾自動清除,并且只能在定義的函數(shù)范圍內(nèi)使用

~]。1靜態(tài)變量:線程不安全。靜態(tài)變量,即類變量,位于方法區(qū)域中。它們被所有對象共享并共享一部分內(nèi)存。修改靜態(tài)變量后,其他對象對修改是可見的,因此線程是不安全的。

2. 實例變量:單例模式(只存在一個對象實例)是線程不安全和非單例線程安全的。實例變量是對象實例的私有變量,并在虛擬機堆中分配。如果這個對象在系統(tǒng)中只有一個實例,那么在多線程環(huán)境中,“就像”這個靜態(tài)變量,被一個線程修改后,其他線程都能看到修改,所以線程是不安全的。如果每個線程在不同的對象中執(zhí)行,那么對象和對象之間的實例變量是不安全的,修改不會相互影響,因此線程安全。

3. 局部變量:線程安全。當每個線程執(zhí)行時,它會將局部變量放在自己的堆棧幀的工作內(nèi)存中,這在線程之間是不共享的,因此不存在線程安全問題。