變數的作用域
1.類的成員變數:作用於整個類
靜態變數:位於方法區,被所有例項共享,生命週期與類相同,可通過類名訪問,也可通過引用變數來訪問
例項變數:位於堆中,他的生命週期取決於例項的生命週期
2.區域性變數:位於棧中,作用於方法內部,生命週期取決於所屬的方法何時被呼叫與銷毀
區域性變數不能被static private protected public修飾
區域性變數要先定義後使用,否則編譯報錯
寫**時應將區域性變數的作用域最小化
只有在構造方法,例項方法中才能使用this關鍵字,在靜態方法,**塊中不能使用
變數初始化
1.對於類變數(成員變數),jvm會初始化為預設值(即可以只宣告,而不賦值,編譯不報錯)
2.對於區域性變數,必須進行顯式初始化賦值,才能使用,否則編譯報錯
執行時資料區:
堆區——存放物件的指向方法區的引用
方法區——存放類的型別資訊、型別資訊包括靜態變數和方法資訊,而方法資訊中包含類的所有方法的位元組碼。
棧區——區域性變數(指向堆區),main方法的呼叫
例如:doll beibei = new doll("貝貝");
其中beibei在棧區,指向乙個名字為「貝貝」的doll例項(在堆區),而doll例項含有的方法則指向方法區。
變數初始化
int a 是變數定義,也就是說編譯器將為a分配儲存,這在編譯時被處理。int a 0 是定義 初始化,定義的分配儲存的action在編譯時完成,初始化的action則在執行時完成 將執行類似dword ptr ebp 4 0的指令,而單獨的int a 不會有對應的執行指令 定義是分配空間,而初始化...
變數的初始化
變數可以分為兩種,一種是方法內的區域性變數,另一種是類的成員變數 對於區域性變數,編譯器強制只有在初始化其值得時候才能使用,而成員變數會進行預設初始化。一 區域性變數必須先初始化後使用 public class test 二 成員變數的初始化 所有的成員變數 包括基本型別和類引用 其自動初始化是在剛...
變數的初始化
1.關於基本資料型別和引用資料型別初始化的值 package com.dbzhang.demo2 public class watersource public string tostring package com.dbzhang.demo2 public class sprinklersyste...