JavaSE基礎文法
- 一、變量
-
- 變量的聲明和初始化
- 成員變量
- 局部變量
- 2.常量
一、變量
變量的作用
:儲存資料
變量的本質
:記憶體的一塊存儲區域
變量的三要素
:資料類型、變量名、變量值
- 資料類型:決定記憶體大小,可以存什麼值
- 變量名:如何通路這塊存儲區域
- 變量值:裡面存儲的資料
變量的聲明和初始化
聲明變量文法
·: 資料類型 變量名;
//例:
int i;
變量指派
:變量名 = 變量值;
注意:
聲明變量和變量的指派可以同時進行,也可以分開進行。變量在被通路(讀取)之前,必須有值
例如:資料類型 變量名 = 變量初始值;
變量的使用
:通過變量名來通路這塊存儲區域
- 變量必須先聲明後使用,并且變量在使用之前必須有初始值
- 變量有作用域
變量作用域
從聲明處開始,到它所屬的}結束
(1)同一個作用域中,一個變量聲明一次
(2)同一個作用域變量不能重名
成員變量
變量初始化
成員變量初始化有三個位置:
1.顯式指派
2.代碼塊
3.構造方法
對于final修飾的成員變量來說,隻要在使用之前進行初始化即可;
局部變量
- 局部變量就是在方法中的變量
- 局部變量在使用前必須顯示初始化,否則使用報錯;因為不想成員變量會賦予預設值;
- 局部變量不進行初始化,也沒有使用,那麼在編譯的時候,直接抛棄;這也意味着根本就不會在棧幀中配置設定記憶體
public class test{
public static void main(String[] args){
int age;
}
}
這段代碼編譯後的位元組碼檔案:

局部變量表隻有args一個;這意味着age被直接抛棄了;
2.常量
java中 final修飾的變量稱之為不可變變量
常量:1,“abc” , true 等這些值才是常量
(1)編譯器可以執行常量計算
常量的運算在編譯的時候就執行完了,是以變量b 編譯成.class的時候直接存儲的就是20,由于20在byte範圍内,是以此代碼不會報錯
(2)變量的值隻能在運作時擷取
byte b1 = 10;
byte b = b1 + 10;//編譯報錯
變量的值隻有在運算的時候才能确定,編譯的時候不知道變量值是多少;由于變量b1和10進行運算,需要提升b1為int類型,是以左邊byte類型不相容,是以譯不通過