更新時(shí)間:2020-10-10 17:16:25 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1308次
相信有接觸過編程開發(fā)的朋友們,一定會(huì)遇到不同的數(shù)據(jù)類型,也會(huì)遇到將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種類型的情況,在java的不同數(shù)據(jù)類型之間是有一定的規(guī)則的,這篇文章就來介紹數(shù)據(jù)類型轉(zhuǎn)換規(guī)則是怎樣的,正在學(xué)習(xí)java零基礎(chǔ)教程的新手新手朋友們可以來學(xué)習(xí)下面的內(nèi)容。
在學(xué)習(xí)java的數(shù)據(jù)類型轉(zhuǎn)換規(guī)則前,先來回顧一下java數(shù)值都有哪些類型:(1)int長(zhǎng)度數(shù)據(jù)類型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits);(2)float長(zhǎng)度數(shù)據(jù)類型有:?jiǎn)尉?32bits float)、雙精度(64bits double);(3)boolean類型變量的取值有:ture、false;(4)char數(shù)據(jù)類型有:unicode字符,16位。
Java的數(shù)據(jù)類型規(guī)則可以分為隱式轉(zhuǎn)換和顯式轉(zhuǎn)換:
一、隱式轉(zhuǎn)換:
隱式轉(zhuǎn)換也叫自動(dòng)類型轉(zhuǎn)換,如果以下2個(gè)條件都滿足,那么將一種類型的數(shù)據(jù)賦給另外一種類型變量的時(shí),將執(zhí)行自動(dòng)類型轉(zhuǎn)換(automatic type conversion)。
2個(gè)需要滿足的條件是:(1)兩種數(shù)據(jù)類型彼此兼容;(2)目標(biāo)類型的取值范圍大于源數(shù)據(jù)類型(低級(jí)類型數(shù)據(jù)轉(zhuǎn)換成高級(jí)類型數(shù)據(jù))。
當(dāng)以上2個(gè)條件都滿足時(shí),拓寬轉(zhuǎn)換(widening conversion)發(fā)生。例如 byte 類型向 short 類型轉(zhuǎn)換時(shí),由于 short 類型的取值范圍較大,會(huì)自動(dòng)將 byte 轉(zhuǎn)換為 short 類型。
在運(yùn)算過程中,由于不同的數(shù)據(jù)類型會(huì)轉(zhuǎn)換成同一種數(shù)據(jù)類型,所以整型、浮點(diǎn)型以及字符型都可以參與混合運(yùn)算。自動(dòng)轉(zhuǎn)換的規(guī)則是從低級(jí)類型數(shù)據(jù)轉(zhuǎn)換成高級(jí)類型數(shù)據(jù)。轉(zhuǎn)換規(guī)則如下:
(1)數(shù)值型數(shù)據(jù)的轉(zhuǎn)換:byte→short→int→long→float→double。
(2)字符型轉(zhuǎn)換為整型:char→int。
以上數(shù)據(jù)類型的轉(zhuǎn)換遵循從左到右的轉(zhuǎn)換順序,最終轉(zhuǎn)換成表達(dá)式中表示范圍最大的變量的數(shù)據(jù)類型。
二、顯式轉(zhuǎn)換
Java數(shù)據(jù)類型轉(zhuǎn)換規(guī)則的顯式轉(zhuǎn)換也叫做強(qiáng)制類型轉(zhuǎn)換,盡管自動(dòng)類型轉(zhuǎn)換是很有幫助的,但并不能滿足所有的編程需要。例如,如果需要將double型的值賦給一個(gè)int型的變量,將怎么辦?這種轉(zhuǎn)換不會(huì)自動(dòng)進(jìn)行,因?yàn)? double 型的變化范圍比 int 型的要小。這種轉(zhuǎn)換有使成為“縮小轉(zhuǎn)換”,因?yàn)槟憧隙ㄒ獙⒃磾?shù)據(jù)類型的值變小才能適合目標(biāo)數(shù)據(jù)類型。
所以當(dāng)兩種數(shù)據(jù)類型不兼容,或目標(biāo)類型的取值范圍小于源類型時(shí),自動(dòng)轉(zhuǎn)換將無法進(jìn)行,這時(shí)就需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換。其語法格式如下:
(type)variableName
其中,type為variableName要轉(zhuǎn)換成的數(shù)據(jù)類型,而variableName是指要進(jìn)行類型轉(zhuǎn)換的變量名稱,強(qiáng)制轉(zhuǎn)換的實(shí)例如下:
上述代碼中首先將double類型變量b的值強(qiáng)制轉(zhuǎn)換成int類型,然后將值賦給a,但是變量b本身的值是沒有發(fā)生變化的。
在強(qiáng)制類型轉(zhuǎn)換中,如果是將浮點(diǎn)類型的值轉(zhuǎn)換為整數(shù),直接去掉小數(shù)點(diǎn)后邊的所有數(shù)字;而如果是整數(shù)類型強(qiáng)制轉(zhuǎn)換為浮點(diǎn)類型時(shí),將在小數(shù)點(diǎn)后面補(bǔ)零。
大家在學(xué)習(xí)完java的各種數(shù)據(jù)類型后,就要知道并學(xué)習(xí)數(shù)據(jù)類型轉(zhuǎn)換規(guī)則了,都是屬于java基礎(chǔ)范疇內(nèi)的知識(shí),是零基礎(chǔ)的新手在java零基礎(chǔ)教程中會(huì)學(xué)習(xí)到的內(nèi)容,所以上面介紹的顯式和隱式的數(shù)據(jù)類型轉(zhuǎn)換規(guī)則還是要好好學(xué)習(xí)并掌握的。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743