聯(lián)系我們 | 加入收藏

  大連服務(wù)外包公共培訓(xùn)服務(wù)平臺(tái)
當(dāng)前位置:首頁 > IT資訊 > 正文
Java入門必學(xué)的數(shù)據(jù)類型
時(shí)間:2022/12/7 8:57:37來源:網(wǎng)絡(luò)閱讀:17867

1 什么是Java 基本數(shù)據(jù)類型

前面講過變量,程序中的變量是一個(gè)存儲(chǔ)單元,用于存儲(chǔ)程序中的數(shù)據(jù)。而今天講的數(shù)據(jù)類型是用來約定變量存儲(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。由于有效范圍很小,其用途也是很有限。一般用來表示內(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ò)誤,不能超過 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語言兼容而設(shè)計(jì)了short數(shù)據(jù)類型。

除了考試時(shí)候能夠遇到short類型,實(shí)際開發(fā)中極少使用short類型。

由于short占有16位2進(jìn)制數(shù),其長度恰巧數(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 超過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)制位長度是byte類型長度的4倍,也稱int在內(nèi)存中占有4個(gè)字節(jié)。

整數(shù)直接量

int整數(shù)使用事項(xiàng):

l直接給出的整數(shù)常數(shù)稱為整數(shù)“直接量”,Java所有整數(shù)“直接量”都是int類型。“整數(shù)直接量”不能超過int范圍。

?默認(rèn)的整數(shù)直接量是 10進(jìn)制 直接量,數(shù)字:0123456789

?使用0x開頭的直接量是 16進(jìn)制 直接量,數(shù)字:0123456789abcdef

?使用0開頭的直接量是 8進(jìn)制 直接量,數(shù)字:01234567

?使用0b開頭的直接量是 2進(jìn)制 直接量,數(shù)字:01

l整數(shù)不能存儲(chǔ)小數(shù)。

l整數(shù)計(jì)算結(jié)果也是整數(shù),并且除法結(jié)果是整除結(jié)果

l整數(shù)計(jì)算時(shí)如果超過整數(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)制課程中專門講述。

案例:

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; //超過范圍 0~7

int f = 0x13efk;//超過范圍 0~9 a~f

int g = 0b12 //超過范圍

//int 類型除法計(jì)算結(jié)果是整除結(jié)果

int n = 7/2;

System.out.println(n);

//int 計(jì)算時(shí)候超過范圍會(huì)溢出

int m = max + 1; //溢出為最小值

System.out.println(m);

最大值加1溢出為最小值的原理會(huì)在2進(jìn)制課程中講解。