局部變量:
當調用該變量方法時,在棧中開闢方法工作空間,再在方法工作空間中開闢一個局部變量工作空間i,這塊空間只能讓方法用,用完就釋放空間;一個局部變量只在定義它的方法/語句塊內有效,用完即釋放,再調用時再開闢;
在創建對象的時候在堆中的對象空間裏開闢空間,創建一個對象在那個對象裏開闢一次實例全局變量與對象關聯,當系統調用構造方法爲對象的屬性方法初始化的時候開闢空間,之後由所在對象調用當對象被GC回收釋放時,實例全局變量開闢的空間也消失
靜態全局變量:
在加載類的時候,在方法區的靜態數據區開闢空間存出靜態全局變量,並且與創建該靜態變量的類關聯每個對象的屬性空間裏都有一個屬性存放着對靜態全局變量的引用爲當前類所有對象所共有,能由類調用,也能由對象來調用,但是對靜態全局變量的所有操作都會反映到整個類增加了耦合性,一個對象設了一個錯的值,會影響到該類的所有對象,一般別用所以我們可以用this指針調用靜態全局變量和靜態方法,但靜態方法沒有this指針找不掉是那個對象調用的它,所以他只能調用靜態全局變量!