上一節(jié)我們把我們的第一個(gè)程序運(yùn)行起來了台谢,這一節(jié)我們開始我們Java基礎(chǔ)的學(xué)習(xí)张遭。先對(duì)程序的數(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ù)對(duì)ASCII的字母是對(duì)應(yīng)關(guān)系刃泌,例如下面程序。
public static void main(String[] args) { byte g = 'b'; System.out.println(g); }
打印輸出為:98署尤,證明'b'字符對(duì)應(yīng)byte數(shù)值為98耙替。
byte與char的關(guān)系:
我們都知道,char是存字符的曹体,但是其實(shí)char也是可以直接存整型俗扇,但是其代表的是整型所對(duì)應(yīng)的字符,例如下面代碼:
public static void main(String[] args) { char i = 85; System.out.println(i); }
打印輸出為:U箕别,證明85對(duì)應(yīng)字符為U字符狐援。
4钢坦、布爾
布爾類型(boolean),長度為1個(gè)字節(jié)啥酱,其只有兩個(gè)值:true爹凹、flase,沒有其他值镶殷,true存1禾酱,false存0。
以上的則為Java對(duì)應(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)換