- Java語言程序設(shè)計
- 陸遲編著
- 2569字
- 2019-01-09 14:01:50
2.3 基本類型
2.3.1 整型數(shù)據(jù)
整型數(shù)據(jù)是最普通的數(shù)據(jù)類型,可表示日常生活中的整數(shù)。
1.整型常量
Java的整型常數(shù)有三種表示形式:十進制、十六進制和八進制。
十進制整數(shù)以10 為基數(shù),用0~9 這10 個數(shù)字和正、負(fù)號組成,如123,-456,0等。十進制整數(shù)的第一位數(shù)字不能為0。
十六進制整數(shù)以16為基數(shù),用0~9的10個數(shù)字、字母A~F(小寫也可,代表10~15這些整數(shù))和正、負(fù)號組成。十六進制整數(shù)必須以0X或0x作為開頭,如0x123,-0xabc等。
八進制整數(shù)以8為基數(shù),用0~7的8個數(shù)字和正、負(fù)號組成。八進制整數(shù)必須用0開始,如0567,-0123等。
每一個整型常數(shù)默認(rèn)存儲為int類型,該類型數(shù)據(jù)占用存儲空間的數(shù)量和數(shù)據(jù)的取值范圍見表2.3。若要使用更大的數(shù),可用long類型整數(shù)。若希望把一個整數(shù)強制存為一個長整型數(shù),可以在數(shù)字后面加字母l或L。
2.整型變量
整型變量按所占存儲空間大小的不同有四種不同的類型,均為有符號數(shù)。表2.3 列出各整型數(shù)據(jù)所用的類型符及其所占存儲空間的字節(jié)數(shù)和數(shù)據(jù)的取值范圍。
表2.3 整型數(shù)據(jù)類型

(1)byte類型
byte字節(jié)類型適用于表示網(wǎng)絡(luò)和文件的字節(jié)流,用于分析網(wǎng)絡(luò)協(xié)議或文件格式等。本類型變量用byte定義,例如:
byte b; //定義byte型變量b byte c = 0x55; //定義byte型變量c,并賦初值十六進制數(shù)55
(2)short類型
short短整型是Java語言中不常用的一種類型。短整型變量用short定義,例如:
short s; //定義short型變量s short t = 03377; //定義short型變量t,并賦初值八進制數(shù)3377
(3)int類型
int整數(shù)類型由于數(shù)值范圍大,而且在任何時候,帶有byte,short和int類型量的一個整型表達式在計算前都會提升為int類型,所以使用較為廣泛。int類型變量的定義例子如下:
int i; //定義int型變量i int j = 0x3344aabb; //定義int型變量j,并賦十六進制數(shù)3344aabb初值
(4)long類型
long長整型是一種可以表示比int類型取值范圍更大的數(shù)據(jù)類型,它足以表示宇宙中的所有原子。例如,當(dāng)使用毫秒來表示一年時,int數(shù)據(jù)已經(jīng)溢出(超出了int數(shù)據(jù)的值范圍),所以需要long類型。long類型變量的定義例子如下:
long l; //定義long型變量l long n = 0x33445566aa7788bbl; //定義long型變量n,并賦初值,用l作為后綴
2.3.2 實型(浮點型)數(shù)據(jù)
在Java中,實型數(shù)據(jù)常用十進制形式,通常將實型數(shù)據(jù)應(yīng)用于精確到小數(shù)的計算中。
1.實型常量
Java的實型常量有標(biāo)準(zhǔn)和科學(xué)記數(shù)法兩種表示形式。
(1)標(biāo)準(zhǔn)形式,由數(shù)字和小數(shù)點組成,且必須有小數(shù)點,如0.123,4.56,789.0等。
(2)科學(xué)記數(shù)法形式,數(shù)字中帶e或E,如123e1或4.56E3,其中e或E前后必須有數(shù)字,且e或E后面的數(shù)字(表示以10為底的乘冪部分)必須為整數(shù)。
實型數(shù)據(jù)按所占內(nèi)存的大小不同有兩種類型,分別為4 字節(jié)的單精度型和8 字節(jié)的雙精度型。實型常量后面可帶后綴F,f或D,d,分別表示單精度實數(shù)或雙精度實數(shù),例如:
1.2f,3.4d,0.56e-7f,89e10d
無后綴的實型常量默認(rèn)存儲為雙精度型。若帶有后綴,則按后綴決定類型。
實數(shù)在機器中的存儲格式以ⅠEEE754格式存在。
單精度實數(shù)有效位數(shù)為二進制23 位、十進制7 位精度,多余位四舍五入。雙精度實數(shù)有效位數(shù)為二進制52位、十進制15位精度,多余位四舍五入。
2.實型變量
實型變量的類型說明符、所占字節(jié)數(shù)和取值范圍見表2.4。
表2.4 實型數(shù)據(jù)類型

(1)float類型
float型的實型數(shù)據(jù)占用存儲空間較少,具有較快的運算速度,但在數(shù)值很大或很小時數(shù)據(jù)精度會受到影響。
(2)double類型
double型的實型數(shù)據(jù)所表示的實數(shù)精度比float更高,值范圍比float更大,所有的數(shù)值計算方法如sin、cos、sqrt(開方)的計算結(jié)果均為double型。
定義實型變量的例子如下:
float f; float g = 3.45f; double d; double mypi = 3.1415926535897932384;
注意:float類型的數(shù)據(jù)必須帶類型后綴字母f或F。由于Java加強了類型檢查,所以初始化一個實數(shù)時必須分清它是什么類型的。如語句:
float g = 3.45;
在編譯時將產(chǎn)生一個錯誤,其中實數(shù)應(yīng)該寫為3.45f。
2.3.3 字符型數(shù)據(jù)
字符型char數(shù)據(jù)是由一對單引號括起來的單個字符。Java使用Unicode格式的16位字符集,而不僅僅為ASCⅠⅠ字符集,因此char類型的范圍從0到65535。Unicode字符集能夠容納一個很大的字符集合,包括拉丁語、希臘語、阿拉伯語、希伯來語、漢語、日語、韓語等語言,因此使用16位是非常必要的。
在Java語言中,以反斜杠(\)開頭的多個字符表示一個轉(zhuǎn)義字符,轉(zhuǎn)義字符一般用于表示某些非圖形(非可視)字符。表2.5 中列出了Java中的轉(zhuǎn)義字符。例如,'\u0061'表示ⅠSO拉丁碼的'a'。
字符變量用char說明,用來存放單個字符。示例如下:
char c1 = 'c'; char c2 = '\u0020'; char ch1 = 88; // 正確,字符'X'的代碼 char ch2 = 'ab'; //錯誤,只能存儲1個字符 char ch3 = "a"; //錯誤,不能用字符串初始化字符
表2.5 轉(zhuǎn)義字符表

2.3.4 布爾型數(shù)據(jù)
布爾類型或稱邏輯類型是一種簡單的兩值數(shù)據(jù)類型,布爾數(shù)據(jù)只有兩個值:true和false,且都是保留字,表示“真”和“假”這兩種狀態(tài)。關(guān)系運算和邏輯運算的結(jié)果是布爾值。
布爾型變量用boolean定義,例如:
boolean mouseOn = true; boolean done = false;
布爾型是一個獨立的類型,它不像C語言中的布爾型代表0 和1 兩個整數(shù),由于這個原因,Java中的布爾類型不能轉(zhuǎn)換成數(shù)字。
2.3.5 字符串?dāng)?shù)據(jù)
1.字符串常量
字符串常量是用雙引號括起來的零個或多個字符(包括轉(zhuǎn)義字符)。例如:
"" \\ 空串 "我們贏了!\n" \\ 一個包含轉(zhuǎn)義字符的字符串
一個長字符串可以用“+”號分成幾個短字符串。例如:
"中國 北京 "+ "2008 奧運!" \\ 一個字符串
在Java語言中,每個字符串常量被作為字符串類String的對象來處理。
2.字符串變量
在Java語言中,字符串變量是對象,是復(fù)合類型。有兩種字符串變量類型:String類和StringBuffer類。String類是常量類,初始化后不能改變;StringBuffer類是字符串緩沖區(qū),可以修改。例如:
String str1 = new String("This is a string."); String str2 = "This is a string."; StringBuffer str3 = new StringBuffer(); StringBuffer str4 = new StringBuffer("This is a string.");
關(guān)于字符串的詳細(xì)介紹見本書第6章。
2.3.6 默認(rèn)初始值
在Java程序中,使用變量的目的是為了存放數(shù)據(jù)(值)。根據(jù)變量聲明的位置不同,分為局部變量和成員變量,在方法中聲明的變量或方法的參數(shù)稱為局部變量,在方法外聲明的變量為成員變量。對局部變量必須先賦值后使用。對成員變量,若沒有賦值,則成員變量有默認(rèn)初值。對于數(shù)值數(shù)據(jù),默認(rèn)數(shù)值為相應(yīng)類型的零;字符的默認(rèn)初值為'\u0000';布爾初值為false;Object類型初值為null。成員變量的介紹見第5章。
【例2.1】基本類型變量的賦值并應(yīng)用。
public class BasicType{ public static void main(String args[]){ byte b = 077; short s = 0x88; int i = 88888; long l = 888888888888l; char c = '8'; float f = 0.88f; double d = 8.88e-88; boolean bool = false; String str = "我們贏了!"; StringBuffer sb = new StringBuffer("中國 北京 2008 奧運!"); System.out.println("b = "+b); System.out.println("s = "+s); System.out.println("i = "+i); System.out.println("l = "+l); System.out.println("c = "+c); System.out.println("f = "+f); System.out.println("d = "+d); System.out.println("boolean = "+bool); System.out.println("str = "+str); System.out.println("sb = "+sb); } }
程序運行結(jié)果如下:
b = 63
s = 136 i = 88888 l = 888888888888 c = 8 f = 0.88 d = 8.88E-88 boolean = false str = 我們贏了! sb = 中國 北京 2008 奧運!
因為程序中的所有變量均在main方法中聲明,它們都是局部變量,因此需要先賦值后使用。否則,將得到“可能尚未初始化變量”的出錯提示。
- Advanced Machine Learning with Python
- Learning ROS for Robotics Programming(Second Edition)
- Maven Build Customization
- Mastering matplotlib
- 老“碼”識途
- 微信公眾平臺開發(fā):從零基礎(chǔ)到ThinkPHP5高性能框架實踐
- Learning Python by Building Games
- 表哥的Access入門:以Excel視角快速學(xué)習(xí)數(shù)據(jù)庫開發(fā)(第2版)
- Visual C++開發(fā)入行真功夫
- 單片機原理及應(yīng)用技術(shù)
- Oracle Data Guard 11gR2 Administration Beginner's Guide
- 視窗軟件設(shè)計和開發(fā)自動化:可視化D++語言
- Java Web開發(fā)基礎(chǔ)與案例教程
- 深入淺出 HTTPS:從原理到實戰(zhàn)
- Java EE項目應(yīng)用開發(fā)