上一節(jié)我們把我們的第一個(gè)程序運(yùn)行起來了,這一節(jié)我們開始我們Java基礎(chǔ)的學(xué)習(xí)。先對程序的數(shù)據(jù)類型進(jìn)行介紹吧。
一、數(shù)據(jù)類型簡介
在Java中,數(shù)據(jù)類型主要分基本數(shù)據(jù)類型和引用數(shù)據(jù)類型,下面來科普一下這兩種數(shù)據(jù)類型到底是什么。
基本數(shù)據(jù)類型:主要包括整數(shù)、浮點(diǎn)數(shù)、字符、布爾這四類。
整數(shù):很好理解,就是我們數(shù)學(xué)里的整數(shù),如1,100,123,......。例如人的歲數(shù),出生年月日,均是整數(shù)。
浮點(diǎn)數(shù):這個(gè)就是我們數(shù)據(jù)里的小數(shù),帶有小數(shù)點(diǎn)的,在Java里叫浮點(diǎn)數(shù)而已。如5.2,4.8等等。例如人的身高。
字符:可以把它理解成字,就像“我愛你”,這種就是字符。例如人的姓名
布爾:這個(gè)就是我們邏輯中的“是”和“否”,在程序時(shí)就是true和false。例如是否為男性。
以上四類就是我們Java中的四類基本數(shù)據(jù)類型。
引用數(shù)據(jù)類型:主要包括類、數(shù)組、接口這三類。
類:可以理解成一個(gè)整體,如人,動(dòng)物等,由基本數(shù)據(jù)類型組成,人均有歲數(shù)、身高、出生年月日、性別等屬性。
數(shù)組:可以理解成一種群體的集合,如一群人,這些集合里的個(gè)體都是同樣類型的。如足球隊(duì),都是球員組成。
接口:它是Java的一個(gè)抽象概念,為一類群體抽取的一個(gè)模型,例如人是一個(gè)接口,美國人,中國人就是這個(gè)模型創(chuàng)建出來的,具有相同的特征。
上述的解釋可能比較抽象,但是大致了解他們的區(qū)別即可,不需要完全理解,在后面的開發(fā)中慢慢就會(huì)理解這些概念了。
二、基本數(shù)據(jù)類型
我們先從基本數(shù)據(jù)類型來逐個(gè)介紹,并且在程序中如何使用他們。
1、整數(shù)
整數(shù)主要分:字節(jié)、短整數(shù)、整數(shù)和長整數(shù)三種,它們的區(qū)別是范圍長度不同。
字節(jié)的長度為1個(gè)字節(jié),數(shù)字范圍為:-128—127,代碼中的標(biāo)識(shí)為byte。
短整數(shù)的長度為2個(gè)字節(jié),數(shù)字范圍為:-32768 ~ 32767,代碼中的標(biāo)示為short。
整數(shù)的長度為4個(gè)字節(jié),數(shù)字范圍為:-2147483648 ~ 2147483647,代碼中的標(biāo)示為int,這種類型也是Java中的整數(shù)的默認(rèn)類型。
長整數(shù)的長度為8個(gè)字節(jié),數(shù)字范圍為:-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807,代碼中的標(biāo)示為long。
注意:不需要去記憶這些整型的具體長度,在日常開發(fā)中經(jīng)常只是使用到int類型而已。
這部分主要需要理解的內(nèi)容為:整數(shù)有分三種,它們的區(qū)別是長度,并且三種的符號(hào)分別是short、int和long即可。
代碼中的使用:
public class HelloWorld {
public static void main(String[] args) {
byte bMin = -128;
byte bMax = 127;
byte bError = -129;
short sMin = -32768;
short sMan = 32767;
short sError = -32769;
int iMin = -2147483648;
int iMax = -2147483648;
int iError = -2147483649;
long lMin = -9223372036854775808l;
long lMax = 9223372036854775807l;
long lError = -9223372036854775809l;
}
}
代碼解析:

注意:
1、長整型的數(shù)字最后為什么需要加一個(gè)L,原因是整型的默認(rèn)類型為int,所以數(shù)字-9223372036854775808程序認(rèn)為是int類型的,所以不加L會(huì)報(bào)錯(cuò),加了L就是告訴程序,我這個(gè)數(shù)字是個(gè)長整型的。
2、浮點(diǎn)數(shù)(小數(shù))
浮點(diǎn)數(shù)主要分:單精度浮點(diǎn)數(shù)和雙精度浮點(diǎn)數(shù),它們的區(qū)別也是范圍長度不同。
單精度浮點(diǎn)數(shù)的長度為4個(gè)字節(jié),float的精度為7~8位有效數(shù)字,代碼的標(biāo)示為:float。
雙精度浮點(diǎn)數(shù)的長度為8個(gè)字節(jié),double的精度為16~17位,代碼的標(biāo)示為:double,是Java中浮點(diǎn)數(shù)的默認(rèn)類型。
代碼中的使用:
public class HelloWorld {
public static void main(String[] args) {
float ff = 2.2;//報(bào)錯(cuò):默認(rèn)2.2是double類型,精度高于float。高精度向低精度賦值會(huì)報(bào)錯(cuò)
float fs = 2.2f;
double fb = 2.2f; //低精度向高精度賦值是允許的
double fd = 2.2;
}
}
代碼解析:

注意:浮點(diǎn)型的默認(rèn)類型為雙精度浮點(diǎn)數(shù)double,所以float的賦值數(shù)據(jù)需要在數(shù)據(jù)后面加一個(gè)f,告訴程序該數(shù)據(jù)都float類型。
低精度可以賦值給高精度,但是高精度不能給低精度賦值,否則出現(xiàn)數(shù)據(jù)失真,丟失精度。
3、字符
字符(char)的長度為2個(gè)字節(jié),它是無符號(hào)型,范圍為0—65535,是一個(gè)16位二進(jìn)制的Unicode字符。
byte與ASCII的關(guān)系:
byte的數(shù)據(jù)對ASCII的字母是對應(yīng)關(guān)系,例如下面程序。
public static void main(String[] args) { byte g = 'b'; System.out.println(g); }打印輸出為:98,證明'b'字符對應(yīng)byte數(shù)值為98。
byte與char的關(guān)系:
我們都知道,char是存字符的,但是其實(shí)char也是可以直接存整型,但是其代表的是整型所對應(yīng)的字符,例如下面代碼:
public static void main(String[] args) { char i = 85; System.out.println(i); }打印輸出為:U,證明85對應(yīng)字符為U字符。
4、布爾
布爾類型(boolean),長度為1個(gè)字節(jié),其只有兩個(gè)值:true、flase,沒有其他值,true存1,false存0。
以上的則為Java對應(yīng)的所有基本數(shù)據(jù)類型。
三、引用數(shù)據(jù)類型
該部分不需要太理解這部分的數(shù)據(jù)類型,后續(xù)學(xué)習(xí)過程中,慢慢就能了解到類、數(shù)組、接口等概念。
四、數(shù)據(jù)類型的轉(zhuǎn)換
1、自動(dòng)轉(zhuǎn)換
2、強(qiáng)制轉(zhuǎn)換