四種八類數(shù)據(jù)類型旅赢;
Java語(yǔ)言提供了八種基本類型。六種數(shù)字類型(四個(gè)整數(shù)型(默認(rèn)是int 型)惑惶,兩個(gè)浮點(diǎn)型(默認(rèn)是double 型))煮盼,一種字符類型,還有一種布爾型带污。
byte:
●byte數(shù)據(jù)類型是8位僵控、有符號(hào)的,以二進(jìn)制補(bǔ)碼表示的整數(shù)鱼冀;(256個(gè)數(shù)字)报破,占1字節(jié)
●最小值是-128(-2^7)悠就;
●最大值是127(2^7-1);
●默認(rèn)值是0充易;
●byte類型用在大型數(shù)組中節(jié)約空間梗脾,主要代替整數(shù),因?yàn)閎yte變量占用的空間只有int類型的四分之一盹靴;
例子:byte a = 100炸茧,byte b = -50。
short:
short數(shù)據(jù)類型是16位稿静、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù)梭冠,占2字節(jié)
●最小值是-32768(-2^15);
●最大值是32767(2^15 - 1)自赔;
●Short數(shù)據(jù)類型也可以像byte那樣節(jié)省空間妈嘹。一個(gè)short變量是int型變量所占空間的二分之一;
●默認(rèn)值是0绍妨;
例子:short s = 1000,short r = -20000柬脸。
int:
int數(shù)據(jù)類型是32位他去、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù);占3字節(jié)
●最小值是-2,147,483,648(-2^31)倒堕;
●最大值是2,147,485,647(2^31 - 1)灾测;
●一般地整型變量默認(rèn)為int類型;
●默認(rèn)值是0垦巴;
例子:int a = 100000, int b = -200000媳搪。
long:
long數(shù)據(jù)類型是64位、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù)骤宣;占4字節(jié)
●最小值是-9,223,372,036,854,775,808(-2^63)秦爆;
●最大值是9,223,372,036,854,775,807(2^63 -1);
●這種類型主要使用在需要比較大整數(shù)的系統(tǒng)上憔披;
●默認(rèn)值是0L等限;
例子: long a = 100000L,int b = -200000L芬膝。
long a=111111111111111111111111(錯(cuò)誤望门,整數(shù)型變量默認(rèn)是int型)
long a=111111111111111111111111L(正確,強(qiáng)制轉(zhuǎn)換)
float:
float數(shù)據(jù)類型是單精度锰霜、32位筹误、符合IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù);占4字節(jié) -3.4E38- 3.4E38癣缅。
●浮點(diǎn)數(shù)是有舍入誤差的
●float在儲(chǔ)存大型浮點(diǎn)數(shù)組的時(shí)候可節(jié)省內(nèi)存空間厨剪;
●默認(rèn)值是0.0f哄酝;
●浮點(diǎn)數(shù)不能用來(lái)表示精確的值,如貨幣丽惶;
例子:float f1 = 234.5f炫七。
float f=6.26(錯(cuò)誤 浮點(diǎn)數(shù)默認(rèn)類型是double類型)
float f=6.26F(轉(zhuǎn)換正確,強(qiáng)制)
double d=4.55(正確)
double:
double數(shù)據(jù)類型是雙精度钾唬、64位万哪、符合IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù);
●浮點(diǎn)數(shù)的默認(rèn)類型為double類型抡秆;
●double類型同樣不能表示精確的值奕巍,如貨幣;
●默認(rèn)值是0.0d儒士;
例子:double d1 = 123.4的止。
boolean:
boolean數(shù)據(jù)類型表示一位的信息;
●只有兩個(gè)取值:true和false着撩;
●這種類型只作為一種標(biāo)志來(lái)記錄true/false情況诅福;
●默認(rèn)值是false;
例子:boolean one = true拖叙。
char:
char類型是一個(gè)單一的16位Unicode字符氓润;用 ‘’表示一個(gè)字符。薯鳍。java 內(nèi)部使用Unicode字符集咖气。
●他有一些轉(zhuǎn)義字符 ,2字節(jié)
●最小值是’\u0000’(即為0)挖滤;
●最大值是’\uffff’(即為65,535)崩溪;可以當(dāng)整數(shù)來(lái)用,它的每一個(gè)字符都對(duì)應(yīng)一個(gè)數(shù)字
char數(shù)據(jù)類型可以儲(chǔ)存任何字符斩松;
例子:char letter = ‘A’伶唯。
注意:
1. 基本類型數(shù)據(jù)本身的值直接存儲(chǔ)在內(nèi)存棧空間里砸民,更加高效抵怎。
2. 每種基本類型所占的存儲(chǔ)空間大小固定,便于移植岭参。
3. 所有數(shù)值類型都有正負(fù)號(hào)反惕。
4. boolean類型所占存儲(chǔ)空間的大小沒有明確指定,僅定義為能夠取字面值true或false演侯。
5. 從JDK5.0開始姿染,Java基本數(shù)據(jù)類型及其對(duì)應(yīng)包裝類之間能實(shí)現(xiàn)自動(dòng)裝箱解箱操作。
6. 帶有“F/f”后綴的數(shù)都是float類型的;帶有“D/d”后綴的數(shù)都是double類型的悬赏。
7. 未帶有字符后綴標(biāo)識(shí)的整數(shù)默認(rèn)為int類型狡汉;未帶有字符后綴標(biāo)識(shí)的浮點(diǎn)數(shù)默認(rèn)為double類型。
8. 如果一個(gè)整數(shù)的值超出了int類型能夠表示的范圍闽颇,則必須增加后綴“L/l”表示為long型盾戴。
9. 編譯期檢查:編譯器會(huì)在編譯期對(duì)byte、short兵多、int尖啡、long、float剩膘、double衅斩、char型變量的值進(jìn)行檢查,如果
超出了它們的取值范圍就會(huì)報(bào)錯(cuò)怠褐。
10.自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換:
A. 當(dāng)一個(gè)較小類型的數(shù)據(jù)和較大類型的數(shù)據(jù)一起運(yùn)算的時(shí)候畏梆,系統(tǒng)會(huì)將較小的數(shù)據(jù)類型自動(dòng)轉(zhuǎn)換為較大的數(shù)據(jù)類型進(jìn)行運(yùn)算;在方法調(diào)用時(shí)奈懒,如果實(shí)際參數(shù)類型較小奠涌,而函數(shù)的形參類型較大時(shí),除非有匹配的方法磷杏,否則會(huì)將參數(shù)自動(dòng)轉(zhuǎn)換為較大類型的形式參數(shù)進(jìn)行調(diào)用铣猩。
B. 如果我們想把一個(gè)能表示更大范圍或者更高精度的類型,轉(zhuǎn)換為一個(gè)范圍更小或者精度更低的類型時(shí)茴丰,就需要使用強(qiáng)制類型轉(zhuǎn)換(Cast)了,強(qiáng)制類型轉(zhuǎn)換可能導(dǎo)致精度損失天吓。
C. 自動(dòng)類型轉(zhuǎn)換圖示:byte -> short(char) -> int -> long -> float -> double贿肩;反之為強(qiáng)制類型轉(zhuǎn)換。