變數的作用域,初始化

2021-08-10 20:29:15 字數 661 閱讀 1959

變數的作用域

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...