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