java全局變量和局部變量

全局變量是一個運行時刻實體,它在程序的整個執行過程中都存在。全局變量生命週期爲程序開始到程序結束。 全局變量顯示初始化時,或者未初始化時,在程序映像中有不同的分區:已初始化的全局變量是可執行模塊的一部分。未初始化的全局變量則不是可執行模塊的一部分,只有當定義它們的程序被調用時(即執行時),才分配空間,聲明或定義時並不分配。未初始化的全局變量在運行時被初始化爲0或null。
局部變量也叫自動變量,它聲明在函數塊內,作用範圍也在函數快內,不能同一源文件的其它函數使用,也不能其他文件中的函數使用,局部變量存儲在棧中。無論局部變量顯示初始化,或者未初始化,都只有當定義它們的程序快被調用時(及執行時),才分配空間,聲明或定義時並不分配,局部變量不是可執行每模塊的一部分!!除非顯示地局部變量進行初始化,否則,它們的初始值是不確定的。局部變量在使用之前必須初始化。
全局變量沒有聲明在任何一個函數內,作用範圍在程序運行始終存在,能被同一原文件的任何函數使用,
也能被其他文件中的函數使用,但是使用extern關鍵字。方法執行完後,隨之銷燬結束。
全局變量存儲在數據段中。
具體來說,全局變量和局部變量的區別如下:

  1. 作用域不同:全局變量的作用域爲整個程序,而局部變量的作用域爲當前函數或循環等

  2. 內存存儲方式不同:全局變量存儲在全局數據區中,局部變量存儲在棧區

  3. 生命期不同:全局變量的生命期和主程序一樣,隨程序的銷燬而銷燬,局部變量在函數內部或循環內部,隨函數的退出或循環退出就不存在了

  4. 使用方式不同:全局變量在聲明後程序的各個部分都可以用到,但是局部變量只能在局部使用。函數內部會優先使用局部變量再使用全局變量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章