Java中的換形師——數(shù)據(jù)類型轉(zhuǎn)換

在學(xué)習(xí)Java這門開發(fā)語言,和使用Java語言進(jìn)行開發(fā)的時(shí)候,會使用變量進(jìn)行數(shù)據(jù)的傳遞與計(jì)算。但是在正常的編程中,不同的數(shù)據(jù)類型在進(jìn)行計(jì)算的時(shí)候會出現(xiàn)問題。

比如上面的程序,還沒有運(yùn)行就被報(bào)錯(cuò)了,這個(gè)只是就涉及到我今天要給大家講的數(shù)據(jù)類型的轉(zhuǎn)換了。

在Java中,數(shù)據(jù)類型的轉(zhuǎn)換分為自動轉(zhuǎn)換與強(qiáng)制轉(zhuǎn)換。

自動轉(zhuǎn)換

自動轉(zhuǎn)換,就是取值范圍小的類型會自動提升為取值范圍大的類型。

比如這樣,上面的程序就不會報(bào)錯(cuò),而且程序運(yùn)行也會通過,也會得出正確的結(jié)果。

轉(zhuǎn)換原理:

double類型占據(jù)8個(gè)字節(jié),int類型只占據(jù)4個(gè)字節(jié)。在計(jì)算時(shí),int類型會自動提升為double類型,自動補(bǔ)充4個(gè)字節(jié),因此計(jì)算后的結(jié)果還是double類型。

轉(zhuǎn)換規(guī)則:

范圍小的類型向范圍大的類型提升。

byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double

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

當(dāng)把一個(gè)不屬于當(dāng)前數(shù)據(jù)類型范圍的值賦值給該數(shù)據(jù)類型時(shí),在編譯階段就會報(bào)錯(cuò)。比如:

int i2 = 1.5;

double類型內(nèi)存占用8個(gè)字節(jié),int類型占用4個(gè)字節(jié)。1.5是double類型,占用內(nèi)存超過int的內(nèi)存范圍。想把一個(gè)大杯子放到一個(gè)小杯子里,這是完全說不通的。

想要讓這段代碼成功的話,只有進(jìn)行強(qiáng)制類型轉(zhuǎn)換,把double類強(qiáng)制轉(zhuǎn)換為int類型才能進(jìn)行賦值。格式如下:

轉(zhuǎn)換原理:

對需要進(jìn)行強(qiáng)制轉(zhuǎn)換的數(shù)據(jù)類型進(jìn)行內(nèi)存的強(qiáng)制增加或者刪除。

注意:

浮點(diǎn)型轉(zhuǎn)化為整數(shù)型,直接取消小數(shù)點(diǎn)后的數(shù)字,可能造成數(shù)據(jù)損失,影響精準(zhǔn)度

總結(jié):

Java學(xué)習(xí)中,數(shù)據(jù)類型的轉(zhuǎn)換是每個(gè)人都需要知道的,即使不是很明白,但是也必須知道數(shù)據(jù)類型之間的內(nèi)存占據(jù)大小關(guān)系。

在這里,給大家準(zhǔn)備了一個(gè)Java的小項(xiàng)目——坦克大戰(zhàn)這個(gè)小游戲,全部做完之后就可以掌握J(rèn)ava的基礎(chǔ)內(nèi)容,為以后的進(jìn)階打下基礎(chǔ)嗎,完成下列步驟即可獲取。

關(guān)注小編并轉(zhuǎn)發(fā)此文章

私信 坦克 ,領(lǐng)取項(xiàng)目代碼與講解

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容