變量的本質:
變量的本質其實就是代表一個“可操作的存儲空間”,空間位置是確定的,但是里面放置的是什么值是不確定。我們可以通過變量名來訪問“對應的存儲空間”,從而操作這個“存儲空間”存儲的值。
例如:車位;變量就相當於車位,車位是確定的,但車位里具體停放什么車輛是未知的
變量聲明:
格式為:
type varName [svalue][,varName[svalue]...]; //[]中的內容為可選,可有可無 //數據類型 變量名 [初始值][,變量名[初始值]...];
在Java中,每一個變量屬於一種類型(type),在聲明變量時,變量所屬的類型位於變量名之前,Java是一種強制類型語言,每個變量都必須聲明其數據類型,變量的數據類型決定變量占據存儲空間的大小,變量是程序中最基本的存儲單元
【示例1-1】聲明變量
double dou; long lon; int age;
不同的數據類型的常量會在內存中分配不同的空間。
注意事項:
1.每個變量都有類型,類型可以是基本類型,也可以是引用類型
2.變量名必須是合法的標識符
3.變量聲明是一條完整的語句,因此每一個聲明都必須以分號結束
4.變量名必須是一個以字母開頭的由字母或數字構成的序列
【示例1-2】在一行中聲明多個變量
int i,j;//兩個變量的數據類型都是int
個人建議
不提倡這種“一行聲明多個變量”的風格,因為逐條聲明變量可提高程序的可讀性。聲明變量需初始化才能使用。
需要注意在Java中聲明變量時,“字母”和“數字”的定義非常廣泛,字母包括‘A~Z’,‘a~z’或某種語言中代表字母的任何Unicode字符
知識擴展:如果想知道哪些Unicode字符屬於Java中的字母,可以使用Character類中的isJavaIdentifierStart和isjavaidentifierpart方法進行監測
變量分類:
局部變量(local variable):方法或語句塊內部定義的變量。生命周期是從聲明的位置開始到方法或語塊執行完畢為此。
【示例2-1】局部變量
public static void main(String[] args) { int age;//局部變量:只能在mian方法中使用 { String name;//局部變量:語句塊,只能在語句塊中使用 } }
局部變量在使用之前必須先聲明,初始化(賦初值)再使用
【示例2-2】
int i;//必須初始化,否則i+5將會報錯 int j = i + 5;
成員變量(也叫實例變量member variable):方法外部,類的內部定義的變量,從所於對象,生命周期伴隨對象始終。(沒有被static修飾),如果對象沒有初始化,它會自動初始化成該類型的默認初始值。
實例變量默認初始值 |
|
boolean |
false |
char |
/u0000(null) |
byte |
(byte)0 |
short |
(short)0 |
int |
0 |
long |
0L |
float |
0.0f |
double |
0.0d |
【示例2-3】成員變量
public class TextCsLoacd{ int a;//成員變量 public static void main(String[] args) { System.out.println("aaa"); } }
靜態變量(類變量static variable):使用static定義。從屬於類,生命周期伴隨類的始終,叢類的加載到卸載。
【示例2-4】靜態變量
public class TextCsLoacd{ static int a;//靜態變量,從屬於類 public static void main(String[] args) { System.out.println("aaa"); } }
常量(Constant):常量通常指一個固定的值
【示例1-1】
String name = "張三";//中"張三"就是常量
常量命名規范:
- 常量:大寫字母和下划線:MAX_VALUE;
- 類名:首字母大寫和駝峰原則:Man,GoodMan;
- 方法名:首字母小寫和駝峰原則:run(),runRun();
在Java語言中,主要是利用關鍵字final來定義一個常量,常量一旦被初始化后不能再更改其值。
關鍵字final表示這個變量只能賦值一次,一旦被賦值之后就不能再更改,
在java中經常希望某個常量可以在一個類中的多個方法中使用,通常將這些常量稱為類常量。可以使用關鍵字static final 設置一個類常量。
【示例1-2】
public class TextCsLoacd { public static final int NAME_AGE = 20; public static void main(String[] args) { } }
需要注意:類常量的定義位於main方法的外部。因此,在同一個類的其他方法中也可以使用這個類常量。而且,一個類常量被聲明為public時,那么其他類的方法也可以使用這個類常量。