為了在Java中存儲一個數據,必須將它容納在一個變量之中。而數據類型決定了一個變量可以賦給什麼值以及對變量進行什麼樣的操作。定義一個變量的兩個基本要素是:類型和標識符,通常你可以用如下語法去說明變量:
type identifer[,identifer];
該語句告訴編譯器用“type”的類型和以“identifer”為名字建立一個變量,這裡的分號將告訴編譯器這是一個說明語句的結束;方格中的逗號和標識符表示你可以把幾個類型相同的變量放在同一語句進行說明,變量名中間用逗號分隔。
在你創建了一個變量以後,你可以給它賦值,或者用運算符對它進行一些運算。類型將決定變量所代表的不同種類的數據,在Java語言中有兩種變量。最基本的是簡單類型變量,他們不建立在任何其他類型上,整數、浮點、布爾和字符類型都是這類型(注意和其他編程語言不太一樣一點是,字符串在這裡是作為一個類的實例出現);另外Java可以定義構造另一種變量類型:類,這些類型建立在簡單類型之上,它包括數值、變量和方法,是一種數據與代碼相結合的復合結構。
1: 整型變量的說明
整型變量按所占內存大小的不同可分為四種不同的類型,最短的整型是byte,它只有八位長,然後是短整型short,它有16位,int類型有32位,長整型long是64位,下面是這些整型變量的說明示例。
byte bCount; (內存中占用: 8 Bits)
short sCount; (內存中占用:16 Bits)
int nCount; (內存中占用:32 Bits)
long LCount; (內存中占用:64 Bits)
int nx,ny,nz; (內存中占用:32 Bits)
2:浮點變量的說明
浮點類型可用關鍵字float或double來說明,float型的浮點變量用來表示一個32位的單精度浮點數,而double型的浮點變量用來表示一個64位的雙精度浮點數。double型所表示的浮點數比float型更精確
float areas;
double weihgt;
3:字符變量說明
Java使用16位的Unicode字符集。因此Java字符是一個16位的無符號整數,字符變量用來存放單個字符。例如:
char a;
a=´c´;
4:布爾變量說明
布爾型有真和假兩個邏輯值,另外,邏輯運算符也將返回布爾類型的值,例如:
boolean onClick;
mouSEOn=true;
布爾型是一個獨立的類型,Java中的布爾類型不代表0和1兩個整數,不能轉換成數字。
5:變量的使用范圍
當你說明了一個變量後,它將被引入到一個范圍當中,也就是說,該名字只能在程序的特定范圍內使用。變量的使用范圍是從它被說明的地方到它所在那個塊的結束處,塊是由兩個大括號所定義的,例如:
class Example
public static void main(String args[])
int i;
......
public void function()
char c;
......
整型變量i在方法main中說明,因為main的塊不包括function塊,所以任何在function塊中對i的引用都是錯誤的。對字符型變量c也同樣如此。
在某一個特定情形中,變量能被別的變量所隱藏,如:在一個塊中說明一個變量,而在這個塊中建立一個新塊並且在其中定義相同名字的變量,這樣在第二個塊中,程序對該變量的使用均是指第二次定義的那個變量。這樣我們說,第一個變量被隱藏了,作者並不建議采用這種定義變量的方法。變量隱藏的示例如下:
class Example
public static void main(String args[])
int i; // * * *
boolean try=true;
while(try)
int i; //以下對變量i的引用均指這裡定義的i
......
//以下對變量i的引用均指* * *處定義的i
......
當你定義一個變量時,首先必須明確它的活動范圍,並根據它的實際功能來命名,此外還應盡量使用詳細的注釋,這些辦法可以使你能夠清晰地區分變量,變量被隱藏的問題也會大大減少。
6:類型轉換
系統方法System.in.read返回一個整型數值,但你卻常常想要把它當作一個字符來使用。現在的問題是,當有一個整數而你需要把變成一個字符時應當去做些什麼呢?你需要去做一個類型轉換為一個字符。從一種類型轉換到另一種類型可以使用下面的語句:
int a;
char b;
a=(int)b;
加括號的int告訴編譯器你想把字符變成整型並把它放在a裡,另一方面,如果你想做相反的轉換,你可以使用:
b=(char)a;
記住整型和字符型變量位長不同是非常重要的,整型是32位長,字符型是16長,所以當你從整型轉換到字符型可能會丟失信息。同樣,當你把64位的長整型數轉換為整型時,由於長整型可能有比32位更多的信息,你也很可能會丟失信息。即使兩個量具有相同的位數,比如整和浮點型(都是32位),你在轉換小數時也會丟失信息,Java不允許自動類型轉換,當你進行類型轉換要注意使目標類型能夠容納原類型的所有信息,不會丟失信息的類型轉換有:
原始類型 目標類型
byte -〉short -〉char -〉int -〉long -〉float -〉double
short -〉int -〉long -〉float -〉double
char -〉int -〉long -〉float -〉double
int -〉long -〉float -〉double
long -〉float -〉double
float -〉double
需要說明的是,當你執行一個這裡並未列出的類型轉換時可能並不總會丟失信息,不過進行這樣一個理論上並不安全的轉換是很危險的。