算術(shù)運(yùn)算時(shí)的轉(zhuǎn)換
首先尚胞,要明確一點(diǎn):Java不支持不同類型之間的數(shù)據(jù)運(yùn)算。
那么帜慢,如果在實(shí)際編程真正碰到不同類型的數(shù)據(jù)的運(yùn)算笼裳,JVM該怎么處理呢唯卖?
首先,JVM會(huì)先轉(zhuǎn)化為同種類型后再做運(yùn)算躬柬,但是這種運(yùn)算是有限制的下面列出類型轉(zhuǎn)換的規(guī)則:
1.如果是 byte short int char 之間的任意的類型做數(shù)值運(yùn)算拜轨,先轉(zhuǎn)換為int 類型,然后再做運(yùn)算允青。
2.如果是整數(shù)類型 和 long 類型之間的運(yùn)算橄碾,除了long類型之外的類型需要轉(zhuǎn)換為 long 類型,然后再做運(yùn)算颠锉。
3.如果有float 和 整數(shù)進(jìn)行運(yùn)算法牲,所有的整數(shù)類型轉(zhuǎn)換為float類型。
4.如果有double類型琼掠,所有的類型都自動(dòng)向double 轉(zhuǎn)換拒垃。
Java支持自動(dòng)向上類型轉(zhuǎn)換:向范圍更大的類型轉(zhuǎn)換。 自動(dòng)的轉(zhuǎn)換瓷蛙。 因?yàn)槭前踩摹?br> 運(yùn)算的過程中悼瓮,同樣可以進(jìn)行強(qiáng)制轉(zhuǎn)換。
賦值時(shí)的轉(zhuǎn)換
賦值時(shí)的類型轉(zhuǎn)換:
1:自動(dòng)向上類型轉(zhuǎn)換
可以將一個(gè)小范圍的類型的數(shù)據(jù)艰猬,賦值給一個(gè)大范圍類型的變量横堡。因?yàn)榘踩钥梢灾苯淤x值冠桃。
2:強(qiáng)制向下類型轉(zhuǎn)換命贴。
通常是將一個(gè)大類型的數(shù)據(jù),賦值給一個(gè)小范圍類型的變量腊满。
強(qiáng)制轉(zhuǎn)換的語法:
[小范圍類型] 變量 = (小范圍類型)[大范圍類型的數(shù)據(jù)]
例子
byte b = (byte)156;
short s = (short)1234567;
向下強(qiáng)轉(zhuǎn)的規(guī)律:
如果是整數(shù)之間的強(qiáng)制轉(zhuǎn)換 直接把多出的高位部分直接砍掉套么。
如果是浮點(diǎn)數(shù)強(qiáng)制轉(zhuǎn)換為整數(shù)培己,那么直接去掉小數(shù)部分碳蛋。
兩個(gè)比較大的整數(shù)相加 結(jié)果還是int 會(huì)超出int的范圍。溢出的部分直接砍掉省咨。
+=運(yùn)算符與++運(yùn)算符自動(dòng)執(zhí)行強(qiáng)轉(zhuǎn)
類型轉(zhuǎn)換圖
字符串的連接
字符串的連接:只有字符串和字符串才能連接零蓉。如果一個(gè)字符串和一個(gè)整數(shù)連接笤受,首先需要將整數(shù)轉(zhuǎn)換為字符串,然后再做連接敌蜂。