Java基礎總結 - 變量

Java基礎總結 - 變量
這篇文章只是把大學記的筆記整理到博客,方便自己查看,不保證權威性(•̀ᴗ•́)و ̑̑

實例全局變量、靜態全局變量局部變量。(爲什麼沒有靜態局部變量,因爲那是沒意義的這是面向過程的產物,變量與函數分開的,方法裏的靜態局部變量保證了數據的共享。而在面向對象過程中,屬性和方法封裝在一起我麼可以直接通過方法來操作靜態全局變量實現相同目的,且結構更清晰)

局部變量:
當調用該變量方法時,在棧中開闢方法工作空間,再在方法工作空間中開闢一個局部變量工作空間i,這塊空間只能讓方法用,用完就釋放空間;一個局部變量只在定義它的方法/語句塊內有效,用完即釋放,再調用時再開闢;

實例全局變量:
在創建對象的時候在堆中的對象空間裏開闢空間,創建一個對象在那個對象裏開闢一次實例全局變量與對象關聯,當系統調用構造方法爲對象的屬性方法初始化的時候開闢空間,之後由所在對象調用當對象被GC回收釋放時,實例全局變量開闢的空間也消失

靜態全局變量:

在加載類的時候,在方法區的靜態數據區開闢空間存出靜態全局變量,並且與創建該靜態變量的類關聯每個對象的屬性空間裏都有一個屬性存放着對靜態全局變量的引用
爲當前類所有對象所共有,能由類調用,也能由對象來調用,但是對靜態全局變量的所有操作都會反映到整個類增加了耦合性,一個對象設了一個錯的值,會影響到該類的所有對象,一般別用
所以我們可以用this指針調用靜態全局變量和靜態方法,但靜態方法沒有this指針找不掉是那個對象調用的它,所以他只能調用靜態全局變量!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章