java區域性變數和全域性變數的區別

2021-03-19 18:36:07 字數 2185 閱讀 5012

1樓:好程式設計師

全域性變數就是這個類的物件都可以訪問的屬性,區域性變數就是某個方法內部臨時定義的變數,當方法呼叫結束後,據不變數自然銷燬。而全域性變數只有在這個類的物件銷燬時才會伴隨銷燬,如果相很多物件共享一個類的某個屬性就用全域性變數。

例如:public class test00115. // a = 10;// 注意,這一行是會報編譯錯誤:未宣告變數a

16. }

17. /**

18. * @param args19. */

20. public static void main(string args)

結果為:

a2=27

a1=20

a3=23

注意:1,對於區域性變數要先賦值後使用

2,區域性變數區域性有效,在定義這個變數的**塊也就是在「{}」中有效3,在重合的有效範圍內,不允許兩個區域性變數發生命名衝突。

2樓:匿名使用者

只有方法變數、類變數,沒有全域性變數

————————————————

靜態區域性變數和普通全域性變數以及靜態全域性變數的區別

3樓:好程式設計師

靜態區域性變數和普通全域性變數以及靜態全集變數在編譯時,編譯器會自動給他回們分配地址。而且是從答mcu上電執行開始,一直駐留,不會被**的。

而真正的區別在於他們的作用域。

靜態區域性變數的作用域是在於定義它的那個函式內。由於其在編譯時編譯器就給他們分配了地址,並且做了初始化,所以它只能被初始化一次,而且看起來的順序是程式每執行到這個函式時,都會執行那條定義語句,其實 並!沒!

有! 因為它已經被分配地址了,而且始終駐留在ram中。而剝離這點,其他特性都與普通的區域性變數相同。

普通全域性變數,在本檔案內可以被無限制地使用。而且其他的原始檔中,也可以通過extern關鍵字引用後使用。

而靜態全域性變數則是在普通全域性變數的基礎上,取消了extern關鍵字引用,即無論怎麼樣,只能給本檔案的程式使用,其他檔案不能使用。(保護**模組化,封閉外部介面)。

4樓:du知道君

區域性變數與其它三個

有本質區別。

區域性變數,定義在函式內,作用域為定義位置,到所在內大括號結束。 每次執行容到定義語句的時候,系統為該變數分配記憶體,當作用域結束後,記憶體被釋放。

而另外三個,都是在系統執行時就分配記憶體,在執行過程中都不會釋放,直到程式結束。

也就是說,區域性變數和其它三個,最明顯的區別:

1 生命週期不同

2 分配時間不同

3 分配位置不同。

而另外三個,在這幾項上是相同的,之間的區別在於作用域。

全域性變數,作用域為整個專案,不管在哪個檔案中,只要宣告後都可以使用。

靜態全域性變數,作用域為定義改變數的所在檔案。

而靜態區域性變數,作用域與普通區域性變數一樣,都是定義位置到所在大括號結束。

static全域性變數與普通的全域性變數有什麼區別

5樓:育知同創教育

全域性變數來(外部變數)的說明之前源再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式, 靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同。

這兩者的區別雖在於非靜態全域性變數的作用域是整個源程式, 當一個源程式由多個原始檔組成時,非靜態的全域性變數在各個原始檔中都是有效的。 而靜態全域性變數則限制了其作用域, 即只在定義該變數的原始檔內有效, 在同一源程式的其它原始檔中不能使用它。由於靜態全域性變數的作用域侷限於一個原始檔內,只能為該原始檔內的函式公用, 因此可以避免在其它原始檔中引起錯誤。

static全域性變數與普通的全域性變數有什麼區別:static全域性變數只初使化一次,防止在其他檔案單元中被引用;

static區域性變數和普通區域性變數有什麼區別:static區域性變數只被初始化一次,下一次依據上一次結果值;

static函式與普通函式有什麼區別:static函式在記憶體中只有一份,普通函式在每個被呼叫中維持一份拷貝。

6樓:2o12倖存者

你可以這麼理解,

static修飾的變數和方法程式一執行就在記憶體裡了,隨時可以用。普通的變數和方法需要程式執行到它,它才被載入到記憶體裡。

7樓:匿名使用者

你先解釋下普通的全域性變數是個啥?

JSP中區域性變數和全域性變數的作用範圍

jsp中的區域性和全域性變數定義方法 全域性變數的定義方法 變數型別 變數名 如,定義一個int型的全域性變數a寫法如下 int a 區域性變數定義方法 變數型別 變數名 如,定義一個string型的區域性變數b寫法如下 string sign 1 其實你換種方式看,jsp最終會轉譯成servelt...

python如何定義全域性變數,python 全域性變數怎麼用

python定義全域性變數的方法 python需要用到關鍵字 global 變數名 的方式來定義全域性變數。例如 定義全域性變數student,global student 就代表定義了一個全域性變數student 示例如下 接下來,我們把值2賦給x。x是函式的區域性變數。所以,當我們在函式內改變x...

shell指令碼中可以設定全域性變數麼

因為 管道符 會新建shell來執行後面的while語句,a的值在新建shell中被改寫。你這裡 ls 的結果只有一條,所以while迴圈只執行一次就退出了,從新建shell回到原shell,a的新值不會被帶出來,還是 hehe 用輸入重定向來替換管道符就行了,例如可以這樣 a hehe while...