|
大連服務(wù)外包公共培訓(xùn)服務(wù)平臺(tái) |
1 什么是Java 基本數(shù)據(jù)類型
前面講過(guò)變量,程序中的變量是一個(gè)存儲(chǔ)單元,用于存儲(chǔ)程序中的數(shù)據(jù)。而今天講的數(shù)據(jù)類型是用來(lái)約定變量存儲(chǔ)空間的大小。約定變量存儲(chǔ)空間大小的目的是根據(jù)數(shù)據(jù)大小選擇合適的存儲(chǔ)空間,將合適的數(shù)據(jù)存儲(chǔ)到相應(yīng)大小的存儲(chǔ)空間可以避免計(jì)算機(jī)資源浪費(fèi),提高軟件運(yùn)算性能。
Java中基本數(shù)據(jù)類型一共有4類8種:
2 整數(shù)類型
Java整數(shù)類型一共有4種, 用于存儲(chǔ)各個(gè)范圍的整數(shù):
整數(shù)類型只能存儲(chǔ)整數(shù),不能存儲(chǔ)小數(shù),小數(shù)需要采用float或者double類型存儲(chǔ)。
2.1 byte 類型
byte類型也稱為字節(jié)類型, 是Java中最小數(shù)據(jù)類型,其內(nèi)部是8位2進(jìn)制數(shù)字。有效數(shù)值范圍:-128~127。由于有效范圍很小,其用途也是很有限。一般用來(lái)表示內(nèi)存中或者文件中的最小存儲(chǔ)單元。
提示:2進(jìn)制知識(shí)在后續(xù)的一個(gè)獨(dú)立課程單元中講解。
案例:
byte max = Byte.MAX_VALUE; //最大值
byte min = Byte.MIN_VALUE; //最小值
System.out.println(max);
System.out.println(min);
byte b = 120;
System.out.println(b);
byte b1 = 128; //編譯錯(cuò)誤,不能超過(guò) byte 范圍
Byte 是Java提供的包裝類API, 在API課程階段會(huì)詳細(xì)講解其功能。
2.2 short 類型
short類型是Java中存儲(chǔ)整數(shù)數(shù)據(jù)范圍較小的數(shù)據(jù)類型,內(nèi)部是一個(gè)16位2進(jìn)制數(shù)字,其有效范圍-32768~32767,由于其范圍小,在程序中很少使用。Java的設(shè)計(jì)者為了保持與傳統(tǒng)C語(yǔ)言兼容而設(shè)計(jì)了short數(shù)據(jù)類型。
除了考試時(shí)候能夠遇到short類型,實(shí)際開(kāi)發(fā)中極少使用short類型。
由于short占有16位2進(jìn)制數(shù),其長(zhǎng)度恰巧數(shù)byte類型2進(jìn)制數(shù)的兩倍,也稱一個(gè)short數(shù)據(jù)占有2字節(jié)
案例:
short max = Short.MAX_VALUE;
short min = Short.MIN_VALUE;
System.out.println(max);
System.out.println(min);
short s = 12000;
System.out.println(s);
short s1 = 32777; //編譯錯(cuò)誤,32777 超過(guò)short范圍
與Byte類似Short也是包裝類,在后期課程中詳細(xì)講解Short包裝類的用途
2.3 int 類型
int類型是Java中最常用的整數(shù)類型,在計(jì)算機(jī)內(nèi)部是一個(gè)32位2進(jìn)制數(shù)字,范圍是-2147483648 ~2147483647。這個(gè)范圍非常實(shí)用,可以涵蓋大多數(shù)整數(shù)用途,所以int用途最多最廣。
因?yàn)閕nt在內(nèi)存中的2進(jìn)制數(shù)字是32位數(shù),其2進(jìn)制位長(zhǎng)度是byte類型長(zhǎng)度的4倍,也稱int在內(nèi)存中占有4個(gè)字節(jié)。
整數(shù)直接量
int整數(shù)使用事項(xiàng):
l直接給出的整數(shù)常數(shù)稱為整數(shù)“直接量”,Java所有整數(shù)“直接量”都是int類型?!罢麛?shù)直接量”不能超過(guò)int范圍。
?默認(rèn)的整數(shù)直接量是 10進(jìn)制 直接量,數(shù)字:0123456789
?使用0x開(kāi)頭的直接量是 16進(jìn)制 直接量,數(shù)字:0123456789abcdef
?使用0開(kāi)頭的直接量是 8進(jìn)制 直接量,數(shù)字:01234567
?使用0b開(kāi)頭的直接量是 2進(jìn)制 直接量,數(shù)字:01
l整數(shù)不能存儲(chǔ)小數(shù)。
l整數(shù)計(jì)算結(jié)果也是整數(shù),并且除法結(jié)果是整除結(jié)果
l整數(shù)計(jì)算時(shí)如果超過(guò)整數(shù)范圍會(huì)自動(dòng)溢出,溢出時(shí)候不會(huì)報(bào)錯(cuò)誤。
?要了解整數(shù)范圍,預(yù)估計(jì)算結(jié)果,如果可能溢出就更換為long類型計(jì)算。
整數(shù)“直接量”也稱為整數(shù)“字面量”,都是指直接給出的整數(shù)常數(shù)。
16進(jìn)制、8進(jìn)制、2進(jìn)制和10進(jìn)制的關(guān)系,在后面2進(jìn)制課程中專門(mén)講述。
案例:
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
System.out.println(max);
System.out.println(min);
int a = 1000000; //10進(jìn)制
int b = 0xef12ab; //16進(jìn)制
int c = 0123; //8進(jìn)制
int d = 0b1110111 //2進(jìn)制
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
int e = 0128; //超過(guò)范圍 0~7
int f = 0x13efk;//超過(guò)范圍 0~9 a~f
int g = 0b12 //超過(guò)范圍
//int 類型除法計(jì)算結(jié)果是整除結(jié)果
int n = 7/2;
System.out.println(n);
//int 計(jì)算時(shí)候超過(guò)范圍會(huì)溢出
int m = max + 1; //溢出為最小值
System.out.println(m);
最大值加1溢出為最小值的原理會(huì)在2進(jìn)制課程中講解。