整數(shù)類型
整數(shù)類型用來存儲整數(shù)數(shù)值,即沒有小數(shù)部分的數(shù)值。整數(shù)類型可以是正數(shù),也可以是負數(shù)。整型常量在Java程序中有3種表示形式,分別為十進制、八進制和十六進制。
十進制
十進制是Java語言默認的數(shù)制,所以使用正常的表示形式,例如,120、0、-127、3
注意: 不能以 0 作為十進制數(shù)的開頭( 0 除外)。
八進制
八進制的表現(xiàn)形式以最高位的數(shù)字0做區(qū)分,如果最高位不是0,那么Java將把它解釋為十進制,否則解釋為八進制。例如,0123(轉化成十進制數(shù)為83)、-0123(轉化成十進制數(shù)為-83)。
說明:八進制的最大單個數(shù)字是 7 , 7 再加 1 就是 10 ,它和十進制的 8 是相等的。八進制的字面量包括“ 0 、 1 、 2 、 3 、 4 、 5 、 6 、 7 ”。例如, 0123 (轉化成十進制數(shù)為 83 )、 -0123 (轉化成十進制數(shù)為 -83 )
注意: 八進制必須以 0 開頭。
十六進制
十六進制的表現(xiàn)形式是在數(shù)的最高位添加“0x”標識,其中“x”字符不區(qū)分大小寫。例如,0x25(轉化成十進制數(shù)為37)、0Xb01e(轉化成十進制數(shù)為45086)。
說明:十六進制主要用于二進制的簡化表達方式,十六進制的1位數(shù)字可以轉換成4位二進制數(shù)字。超出9的數(shù)字在十六進制中以字母表示,其字面量包括“0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F”,其中“A~F”分別代碼十進制的“10~15”。例如:0x25(轉化成十進制數(shù)為37)、0Xb01e(轉化成十進制數(shù)為45086)
注意:十六進制必須以0X或0x開頭。
整型變量根據(jù)它在內存中所占大小的不同,可分為byte、short、int和long4種類型。它們具有不同的取值范圍,如表1所示。
表1 整型數(shù)據(jù)類型
數(shù)據(jù)類型
內存空間(8位等于1字節(jié))
取值范圍
byte 8位-128~127
short 16位-32768~32767
int 32位-2147483648~2147483647
long 64位-9223372036854775808~9223372036854775807
下面以int型變量為例,介紹整型變量的定義格式。
實例 定義int型變量,實例代碼如下:
int m; //定義int型變量m
int x,y; //定義int型變量x,y
int a = 450,b = -462; //定義int型變量a,b并賦給初值
在定義以上4種類型變量時,要注意變量的值不能超過變量所能接受的最大值與最小值,否則會出現(xiàn)錯誤。Java默認的整數(shù)類型是int,如果要標記整數(shù)是long類型,必須在數(shù)字末尾添加字母L或l(小寫的L)。例如 long num= 2147483650L。
實例在項目中創(chuàng)建類Number,在主方法中創(chuàng)建不同數(shù)值型變量,并將這些變量相加,將和輸出。
public classNumber { //創(chuàng)建類
publicstatic voidmain(String[] args) { //主方法
bytemybyte = 124; //聲明byte型變量并賦值
shortmyshort = 32564; //聲明short型變量并賦值
intmyint = 45784612; //聲明int型變量并賦值
longmylong = 46789451; //聲明long型變量并賦值
longresult = mybyte+myshort+myint+mylong; //獲得各數(shù)相加后的結果
System.out.println('結果為:'+result); //將以上變量相加的結果輸出
}
}
程序行結果如圖1所示。
圖1 實例的運行結果
浮點類型
浮點類型表示有小數(shù)部分的數(shù)字,Java語言中浮點類型分為單精度浮點類型(float)和雙精度浮點類型(double)。它們具有不同的取值范圍,如表1所示。
浮點型數(shù)據(jù)類型
數(shù)據(jù)類型
內存空間(8位等于1字節(jié))
取值范圍
float 32位 1.4E-45~3.4028235E38
double 64位 4.9E-324~1.7976931348623157E308
Java語言默認使用double雙精度類型的浮點數(shù),就像int是默認的整數(shù)類型一樣。如果將實數(shù)賦值給float類型的變量,則需要在實數(shù)末尾添加F或f作為后綴,否則被認為是double類型數(shù)值。
例 定義浮點類型變量,代碼如下:
double sum=3799.39; // 雙精度是默認浮點類型
double length=156.34D; // 雙精度可以添加D標識
float price=34.50F; // 單精度需要添加F標識
double length1=156.34d; // 雙精度可以添加d標識
float price1=34.50f; // 單精度需要添加f標識
System.out.println('sum='+sum); //輸出結果為:sum=3799.39
System.out.println('length='+length); //輸出結果為:length=156.34
System.out.println('price='+price); //輸出結果為:price=34.5
System.out.println('length1='+length1); //輸出結果為:length1=156.34
System.out.println('price1='+price1); //輸出結果為:price1=34.5
字符類型
1.char型
字符類型(char)用于存儲單個字符,占用16位(兩個字節(jié))的內存空間。在定義字符型變量時,要以單引號表示,例如 's' 表示一個字符。而 's' 則表示一個字符串,雖然它只有一個字符,但由于使用雙引號,所以它仍然表示字符串,而不是字符。
使用char關鍵字可定義字符變量。
例 聲明字符型變量,實例代碼如下:
charx ='a';
由于字符a在unicode表中的排序位置是97。因此,允許將上面的語句寫成:charx = 97;
同C、C++語言一樣,Java語言也可以把字符作為整數(shù)對待。由于unicode編碼采用無符號編碼,可以存儲65536個字符(0x0000)~0xffff),所以Java中的字符幾乎可以處理所有國家的語言文字。若想得到一個0~65536之間的數(shù)所代表的unicode表中的相應位置上的字符,也必須使用char型顯示轉化。
例在項目中創(chuàng)建類Gess,編寫如下代碼,實現(xiàn)將unicode表上某些位置上的字符以及一些字符在unicode表中的位置在控制臺上輸出。
運行結果如圖1所示
圖1 實例的運行結果
2.轉義字符
轉義字符是一種特殊的字符變量。轉義字符以反斜線“\”開頭,后跟一個或多個字符。轉義字符具有特定的含義,不同于字符原有的意義,故稱“轉義”。例如,printf函數(shù)的格式串中用到的“\n”就是一個轉義字符,意思是“回車換行”。Java中轉義字符如表1所示。
轉義字符含義
\ddd
1到3位8進制數(shù)據(jù)所表示的字符,如:\456\dxxxx
4位16進制所表示的字符,如:\0052 \’單引號字符 \\反斜杠字符
\t垂直制表符,將光標移到下一個制表符的位置\r回車\n換行\(zhòng)b退格\f換頁
將轉義字符賦值給字符變量時,與字符常量值一樣需要使用單引號將轉義字符括起來。
例,分別為字符變量c1賦值為'\\'、字符變量c2賦值為'\''、字符變量c3賦值為'\115'、字符變量c4賦值為'\u0052',字符變量c5賦值為'\u2605',然后輸出。
char c1='\\'; //為變量c1賦值轉義字符“\\”
char c2='\''; //為變量c2賦值轉義字符“\'”
char c3='\115'; //為變量c3賦值轉義字符“\115”表示的字符
char c4='\u0052'; //為變量c4賦值轉義字符“\u0052”表示的字符
char c5='\u2605'; //為變量c5賦值轉義字符“\u2605”表示的字符
System.out.println(c1); //輸出結果為:\
System.out.println(c2); //輸出結果為:'
System.out.println(c3); //輸出結果為:M
System.out.println(c4); //輸出結果為:R
System.out.println(c5); //輸出結果為:★
圖2 控制臺輸出結果
例在Java中,對字符變量進行如下的賦值也是合法的:
char char1='B'+1; //將字符常量值'B'與十進制整數(shù)1相加的結果賦給字符變量char1
charchar2='B'+'1'; //將兩個字符常量值'B'與'1'相加的結果賦給字符變量char2
charchar3=24+76; //將兩個十進制整數(shù)24與76相加的結果賦給字符變量char3
charchar4='n'-32; //該操作將得到大寫的字母N,'N'+32將得到小寫的字母n
System.out.println(char1); //輸出結果為:C
System.out.println(char2); //輸出結果為:s
System.out.println(char3); //輸出結果為:d
System.out.println(char4); //輸出結果為:N
圖3 控制臺輸出結果
例在輸出語句中使用轉義字符,實例代碼如下:
publicclass Temp {
publicstaticvoidmain(String[] args) {
System.out.println('\102'); // 八進制編碼的字符
System.out.println('\u0042'); // 十六進制編碼的字符
System.out.println('蘋果\t橘子\t香蕉'); // 使用制表符分割
System.out.println('\\字符是反斜杠'); // 輸出反斜杠
System.out.println('\n換行字符'); // 輸出回車
}
}
布爾類型
布爾類型又稱邏輯類型,只有兩個值true和false,分別代表布爾邏輯中的“真”和“假”,布爾值不能與整數(shù)類型進行轉換。布爾類型通常被用在流程控制中作為判斷條件。
例定義布爾型變量,可通過關鍵字boolean來定義。定義方法如下:
boolean b; //定義布爾型變量b
boolean b1,b2; //定義布爾型變量b1,b2
例分別為布爾型變量married賦值為false,alive賦值為true,然后輸出。
booleanmarried=false;
boolean alive=true;
System.out.println('已婚:'+married); //輸出結果為:false
System.out.println('生命:'+alive); //輸出結果為:true
在控制臺中的運行結果如圖1所示。