什麼是變量java
在Java程序中,變量是基本的存儲單元。是在程序運行中值能夠改變的一塊內存區域。變量是經過標識符(變量名)、變量類型及可選的初始化器來定義的,此外,全部的變量都有做用域,做用域定義了變量的可見性和生命週期。編程
例如:計算兩個班級的總人數,須要將兩個班級的人數加在一塊兒,在計算機運算過程當中須要先分配一塊內存保存第一個班級的人數,再分配一塊內存保存第二個班級的人數,最後通過CPU的調度進行數學運算得出最後的結果。代碼以下:blog
int classA = 20; //定義變量classA保存第一個班級的人數生命週期
int classB = 30; //定義變量classB保存第二個班級的人數內存
int sum = classA + classB; //定義變量sum用來保存兩個班級的總人數作用域
當程序按照順序執行第一行代碼時,將會分配一塊內存空間,這一塊內存空間使用標識符classA來表示,內存中存儲的數據爲20,這一塊內存空間稱爲「變量」,classA稱爲變量名,20就是變量值。上述三行代碼執行時在內存中的狀態如圖1所示。編譯器
圖1 變量在內存中數學
「int」定義了變量的數據類型(後面的章節會詳細介紹java語言中的8種基本類型),使用變量時要求必須指明變量的數據類型,這樣Java纔會分配合適大小的內存空間保存變量的值。編譯
咱們還可使用賦值運算符「=」修改變量的值,這個操做稱爲「爲變量賦值」。賦值操做將會極大的增長程序的多變性。class
變量的聲明
Java語言是強類型(strongly typed)語言,強類型語言包含兩方面含義:
1)全部的變量在使用以前必須先聲明,後使用。
2)指定類型的變量只能接受類型與之匹配的值。
這意味着每一個變量和每一個表達式都有一個在編譯時就肯定的類型。類型限制了一個變量能被賦的值,限制了一個表達式能夠產生的值,限制了在這些值上能夠進行的操做,並肯定了這些操做的含義。
強類型語言能夠在編譯時進行更嚴格的語法檢查,從而減小編程錯誤。
聲明變量的語法很是簡單,只須要指定變量的類型和變量名便可,以下所示:
數據類型 變量名 [ = 初始值];
上面的語法中,定義變量時既能夠指定初始值,也能夠不指定初始值。隨着變量的做用域不一樣,變量還可能使用其餘修飾符。但無論是哪一種變量,定義變量至少須要指定變量類型和變量名兩個部分。定義變量時的變量類型能夠是Java語言支持的全部類型(基本類型或引用類型)。
變量的聲明就是告訴編譯器這個變量的數據類型和變量的名稱,這樣編譯器才知道須要分配多少內存空間給它,以及定義它能放什麼樣的數據。
在聲明變量時,在同一數據類型下能夠聲明多個變量,只須要使用「,」進行分隔,以下所示:
數據類型 變量名 [ = 初始值][ , 變量名 [ = 初始值] …];
下面是聲明各類類型變量的一些例子:
int a , b , c; //聲明瞭三個int型變量:a、b和c
byte z; //聲明一個byte型變量
double pi; //聲明一個double型變量
char x; //聲明一個char型變量
在此選擇的變量名與用來指定變量類型的名稱沒有任何內在聯繫,Java容許將任何形式的正確的變量名聲明爲任何類型。
在聲明變量時須要注意如下幾點:
1)變量類型與變量名之間使用空格分隔。
2)每一條Java語句都要以「;」(英文分號)結尾。
3)在一個語句中連續聲明多個變量時,變量名之間使用「,」(英文逗號)分隔。
4)在同一個做用域(下一章節會對做用域進行講解)下變量名不容許重複,否者會編譯錯誤(就像一個班級中有兩我的都叫張三,老師點名張三的時候到底點的是哪一個張三?)。
5)遵照變量名稱的命名規範(命名規範會在後面的章節進行講解)。