數(shù)據(jù)轉(zhuǎn)換
變量在第(3)篇中有講到過八種數(shù)據(jù)類型剔应,分別是能夠用來表示整型的byte短曾、short碍论、int谅猾、long和表示浮點(diǎn)型的float柄慰、double以及字符型char鳍悠、布爾型boolean税娜。
那就又衍生了一個(gè)問題:我怎么讓int型的1轉(zhuǎn)成byte型的1呢?
so easy藏研,把byte型變量賦值給int型就可以啦~
byte a = 1;
int b = a; // 這時(shí)候b的值就會(huì)是1了
像這樣就完成了轉(zhuǎn)換敬矩。
然鵝,這里要注意的是因?yàn)槭菑姆秶〉腷yte轉(zhuǎn)成范圍大的int蠢挡,所以可以直接轉(zhuǎn)弧岳。那么如果是從范圍大的int轉(zhuǎn)成范圍小的byte呢?
我們就需要給后面的值做一個(gè)強(qiáng)調(diào)业踏,like this:
int a = 1;
byte b = (byte) a;
這個(gè)操作【(byte)
】就是強(qiáng)轉(zhuǎn)了禽炬。當(dāng)然,如果a是超過了byte的范圍-128~127的話勤家,那么就會(huì)丟失精度腹尖。比如:
int a = 130;
byte b = (byte)a;
System.out.println("b="+b);
130超過127了吧,我們看看運(yùn)行結(jié)果:是的伐脖,結(jié)果果然就不是130热幔,而變成了-126。Java在這個(gè)強(qiáng)轉(zhuǎn)之后把多余的2加上了(-128)就成了-126了讼庇。所以呀绎巨,強(qiáng)轉(zhuǎn)要注意范圍區(qū)間喲!
好了蠕啄,講到這里场勤,需要給三個(gè)定義了:
- 優(yōu)先級(jí):是根據(jù)數(shù)據(jù)類型分配空間的大小,取值范圍的不同來劃分歼跟。(按字節(jié)唄却嗡,詳見下表)
- 從優(yōu)先級(jí)低的數(shù)據(jù)類型轉(zhuǎn)成優(yōu)先級(jí)高的數(shù)據(jù)類型是可以直接進(jìn)行轉(zhuǎn)換的,這種轉(zhuǎn)換就叫隱式類型轉(zhuǎn)換嘹承。
- 從優(yōu)先級(jí)高的數(shù)據(jù)類型轉(zhuǎn)成優(yōu)先級(jí)低的數(shù)據(jù)類型是不能直接進(jìn)行轉(zhuǎn)換的窗价,需要進(jìn)行強(qiáng)轉(zhuǎn),這種轉(zhuǎn)換就叫顯式類型轉(zhuǎn)換叹卷。
引用類型
除了上表中八種基本類型之外撼港,Java還有一種比較特殊的類型,叫引用類型骤竹。
引用了帝牡,就是在別的地方寫好了,我在這里用嘛~Java的引用類型只想的是一個(gè)對(duì)象蒙揣,不是像byte靶溜、int這種是一個(gè)原始值。
當(dāng)然了,既然叫引用類型罩息,那么根據(jù)它引用的對(duì)象的不同嗤详,我們大致上可以把引用類型分為三種,類瓷炮、接口和數(shù)組葱色。(就這么一說,之后再仔細(xì)講)娘香。
那么怎么用呢苍狰?比如說我這里有個(gè)用戶實(shí)體類(User),那么我們用的時(shí)候就是
User user = new User();
這里的user
變量就是引用類型啦~
當(dāng)然烘绽,常用的String也是一個(gè)類淋昭,String str = "ahan";
這個(gè)str也是引用類型哦~
以上,阿里嘎多安接,20190411 from ahanwhite响牛。