Java數(shù)據(jù)類(lèi)型及使用方法

Java數(shù)據(jù)類(lèi)型及使用方法

深圳達(dá)內(nèi)教育      2022-03-22 18:50:01     11

Java數(shù)據(jù)類(lèi)型及使用方法,一、基本數(shù)據(jù)類(lèi)型整型:byte、short、int、long (在計(jì)算機(jī)中以二進(jìn)制補(bǔ)碼格式存儲(chǔ))浮點(diǎn)型:float、double (在計(jì)算機(jī)中以IEEE754

課程價(jià)格 請(qǐng)咨詢(xún)

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹

一、基本數(shù)據(jù)類(lèi)型

  • 整型:byte、short、int、long (在計(jì)算機(jī)中以二進(jìn)制補(bǔ)碼格式存儲(chǔ))
  • 浮點(diǎn)型:float、double (在計(jì)算機(jī)中以IEEE754格式存儲(chǔ))
  • 字符型:char (在計(jì)算機(jī)中以u(píng)nicode碼格式存儲(chǔ))
  • 布爾型:boolean (只有true和false兩個(gè)值)

二、1、長(zhǎng)整型:long

定義 :long a=100;int b=a; (編譯出錯(cuò))

給a重新賦值:long a=2147483648; (編譯出錯(cuò))

定義:long a=2147483648L;(正確,說(shuō)明此時(shí)可以是long型的取值范圍)

說(shuō)明在long型的數(shù)據(jù)后不加L/l時(shí),數(shù)據(jù)仍為long型,但其取值范圍卻是int型的取值范圍;數(shù)據(jù)后加L/l時(shí),取值范圍才是long型的取值范圍。

2、浮點(diǎn)型:long

定義:float a=19; 輸出a時(shí)為19.0

定義:float a=19.1; (編譯出錯(cuò))

定義:float a=19.1f; (正確)

說(shuō)明在 float型的數(shù)據(jù)后不加F/f,則數(shù)據(jù)不能有小數(shù)位,但輸出時(shí),能夠輸出一位小數(shù);若在float型的數(shù)據(jù)后加上F/f,則數(shù)據(jù)可以有小數(shù)位;

三、類(lèi)型轉(zhuǎn)換(注:boolean型不會(huì)發(fā)生類(lèi)型轉(zhuǎn)換,基本類(lèi)型和復(fù)合類(lèi)型不能相互轉(zhuǎn)換)

1、自動(dòng)轉(zhuǎn)換

  • 賦值轉(zhuǎn)換:用于短字節(jié)的數(shù)據(jù)類(lèi)型轉(zhuǎn)換成長(zhǎng)字節(jié)的數(shù)據(jù)類(lèi)型(byte型的數(shù)據(jù)不能轉(zhuǎn)換成char型,short型和char型數(shù)據(jù)也不能相互轉(zhuǎn)換)
  • 單目運(yùn)算符提升:++、――運(yùn)算符不會(huì)自動(dòng)提升,+(正)、-(負(fù))會(huì)將byte、short、char型的數(shù)據(jù)自動(dòng)轉(zhuǎn)換成int型的數(shù)據(jù)
  • 雙目運(yùn)算符提升:如果有一個(gè)操作數(shù)是double型的,則把另一個(gè)轉(zhuǎn)換成double型;否則 如果有一個(gè)操作數(shù)是float型的,則把另一個(gè)轉(zhuǎn)換成float型;否則 如果有一個(gè)操作數(shù)是long型的,則把另一個(gè)轉(zhuǎn)換成long型;否則 兩個(gè)操作數(shù)都轉(zhuǎn)換成int型。
  • 三目運(yùn)算符 ? : 其中op1必須是boolean型的,而op2和op3兩操作數(shù)必須是能夠自動(dòng)轉(zhuǎn)換成相同類(lèi)型的數(shù)據(jù),op2和op3會(huì)自動(dòng)提升為兩操作數(shù)中字節(jié)較長(zhǎng)的一個(gè),并且結(jié)果為提升后的類(lèi)型。

如:

byte a1=20;short a2=10;boolean b=true;short c = b ?a1 : a2;

結(jié)果為short型的數(shù)據(jù)c

2、強(qiáng)制轉(zhuǎn)換

例子:

int a;

byte b=(byte)a;

定義:a=-126;

(分析:int形的數(shù)據(jù)有4個(gè)字節(jié),而byte形的數(shù)據(jù)只有1個(gè)字節(jié),所以只取int型數(shù)據(jù)的最后一個(gè)字節(jié))

a的原碼: 10000000,00000000,00000000,01111110

補(bǔ)碼: 11111111,11111111,11111111,10000010

法一:r=(10000010)=130 (此時(shí)將 10000010 看成是純的二進(jìn)制數(shù)去計(jì)算,而不考慮它的符號(hào)位); byte型數(shù)據(jù)范圍[-128,127],由于 r>127,所以 r=r-M (若整型數(shù)據(jù)值域[-L,R],則M=L+R+1),如果r還不在byte型數(shù)據(jù)的取值范圍內(nèi),則繼續(xù) r=r-M 直至r在其取值范圍內(nèi),取得r后,即為byte型的 b .此處r=-126,所以輸出b為-126.

法二:直接將int型數(shù)據(jù)的最后一個(gè)字節(jié)看成是byte型數(shù)據(jù)的補(bǔ)碼形式,在將補(bǔ)碼轉(zhuǎn)換成原碼,即得到 b

四、邏輯運(yùn)算符

1、&&和|| (&&的優(yōu)先級(jí)要高于||的)

特點(diǎn):只要左操作數(shù)已經(jīng)得出整個(gè)表達(dá)式的值,就不再計(jì)算右操作數(shù)的之值,左右操作數(shù)必須為boolean型的。

例子:

boolean test1= ++x==-1 && ++x==1 || ++x=2;boolean test2= ++y==-1 || ++y==1 && ++y=2;System.out.println(x+" "+test1);System.out.println(y+" "+test2);結(jié)果:1 false2 true

2、&和| (邏輯位運(yùn)算符)

特點(diǎn):先把兩個(gè)操作數(shù)的值計(jì)算出來(lái),然后再進(jìn)行邏輯運(yùn)算

int x=-1,y=-1;boolean test1= ++x==-1 & ++x==1 | ++x=2;boolean test2= ++y==-1 | ++y==1 & ++y=2;System.out.println(x+" "+test1);System.out.println(y+" "+test2);結(jié)果: 2 false2 true

五、移位運(yùn)算

<< (左移) 高位丟失、低位以0填充

>> (右移) 低位丟失、高位以符號(hào)位填充

>>> (無(wú)符號(hào)位右移) 低位丟失、高位以0填充

此運(yùn)算符不會(huì)對(duì)左右兩操作數(shù)作算術(shù)提升,但會(huì)對(duì)左操作數(shù)進(jìn)行單獨(dú)提升,若為byte、short、char、int型,則得到結(jié)果為int型,若為long型,則結(jié)果為long型,但左右操作數(shù)均不能為浮點(diǎn)型,否則出錯(cuò)。

當(dāng)左操作數(shù)為int型時(shí),右操作數(shù)的低5位才有用,這樣可以防止移位超過(guò)int型所具有的位數(shù), 當(dāng)左操作數(shù)為long型時(shí),右操作數(shù)的低6位才有用。

例子:

int a=-2;

short b=-10;

int c=a>>b;

b的補(bǔ)碼:11111111,11111111,11111111,11110110

取b的最后5位, r=(10110)=22;

a的補(bǔ)碼:11111111,11111111,11111111,11111110

將a向右移動(dòng)22位,再在高位補(bǔ)上1,得到 11111111,11111111,11111111,11111111 ,轉(zhuǎn)換成原碼得到 c=-1

六、賦值運(yùn)算

1.簡(jiǎn)單賦值運(yùn)算

表達(dá)式: =

左操作數(shù)可以事先沒(méi)有賦值

表達(dá)式的類(lèi)型必須和變量的類(lèi)型相同,或能賦值轉(zhuǎn)換成變量的類(lèi)型,

2.組合賦值運(yùn)算

表達(dá)式: op=

int a=10;

double b=23.3;

a*=b;

左操作數(shù)事先一定要賦值

左邊的類(lèi)型和右邊的類(lèi)型不一定要相同,此處a*b得到的是double型的,組合運(yùn)算符會(huì)自動(dòng)把double型的值轉(zhuǎn)換成int型的值存入變量a中。

培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過(guò)大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。