Java中的數(shù)據(jù)類型如下圖:
①整形字面量默認(rèn)被視作int類型虏等。因此十气,大于2147483647(231-1)的整形字面量需要添加“L”后綴,否則會因為超出int類型的表數(shù)范圍而報錯璃诀。
②char類型可以被視為無符號整形狈茉,只能用于表示單個字符,取值范圍0-65535(216-1)恩急。在Java中使用Unicode字符集作為編碼集杉畜。
③如果將一個較小的整形字面量/整形字面量表達(dá)式/整形字面量和常量混合表達(dá)式(結(jié)果在byte類型、short類型或char類型的表數(shù)范圍內(nèi))賦給一個byte類型衷恭、short類型或char類型的變量此叠,在賦值時會將其自動轉(zhuǎn)換為相應(yīng)類型的值。
④Java中的浮點數(shù)在存儲介質(zhì)中以二進(jìn)制科學(xué)計數(shù)法表示随珠,因此當(dāng)浮點數(shù)有效數(shù)字位數(shù)(二進(jìn)制)大于該浮點數(shù)類型的尾數(shù)長度時灭袁,該浮點數(shù)無法被精確表示。如果需要精確表示一個浮點數(shù)窗看,建議使用BigDecimal類茸歧。
⑤浮點型字面量默認(rèn)被視作double類型。如果希望Java把一個浮點型字面量當(dāng)成float類型處理显沈,應(yīng)添加“F”后綴软瞎。
⑥Java中數(shù)值型字面量有4中表示方式:十進(jìn)制(默認(rèn))、二進(jìn)制、八進(jìn)制铜涉、十六進(jìn)制。其中二進(jìn)制以“0b”開頭遂唧,八進(jìn)制以“0”開頭芙代,十六進(jìn)制以“0x”開頭。需要注意的是盖彭,二進(jìn)制字面量/八進(jìn)制字面量/十六進(jìn)制字面量在代碼中以補碼的形式存在纹烹。
⑦無法聲明null類型的變量,null是null類型數(shù)據(jù)唯一的值召边,且null只能賦給引用數(shù)據(jù)類型的變量铺呵。
⑧當(dāng)算術(shù)表達(dá)式中包含多個基本數(shù)據(jù)類型的數(shù)據(jù)時,表達(dá)式運算結(jié)果的數(shù)據(jù)類型將與表達(dá)式中最高等級操作數(shù)的數(shù)據(jù)類型保持一致隧熙,且所有byte/short/char類型的數(shù)據(jù)將會被自動提升為int類型片挂。(前提是算數(shù)表達(dá)式的操作數(shù)中包含變量/算數(shù)表達(dá)式的操作數(shù)全都是變量。如果表達(dá)式中的操作數(shù)都是字面量贞盯,表達(dá)式運算結(jié)果的數(shù)據(jù)類型將參考③中定義的規(guī)則)音念。
⑨基本數(shù)據(jù)類型的數(shù)據(jù)可以與String類型的數(shù)據(jù)做連接(加法)運算,運算結(jié)果的數(shù)據(jù)類型為String類型躏敢。
基本數(shù)據(jù)類型的類型轉(zhuǎn)換有兩種方式:自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換
①從左向右可以進(jìn)行自動類型轉(zhuǎn)換闷愤,從右向左必須進(jìn)行強制類型轉(zhuǎn)換。
②自動類型轉(zhuǎn)換只能跟隨箭頭方向(byte/short類型的數(shù)據(jù)不能自動轉(zhuǎn)換成char類型的數(shù)據(jù))件余;強制類型轉(zhuǎn)換可以脫離箭頭方向(char/byte/short類型的數(shù)據(jù)能夠相互進(jìn)行強制類型轉(zhuǎn)換)讥脐。
③浮點型數(shù)據(jù)強制轉(zhuǎn)換整形數(shù)據(jù)時,直接截斷小數(shù)點后的二進(jìn)制位啼器;整型數(shù)據(jù)之間強制轉(zhuǎn)換時旬渠,直接抹除高位多余的二進(jìn)制位。
④如果要實現(xiàn)“基本數(shù)據(jù)類型數(shù)據(jù)→String類型數(shù)據(jù)”的轉(zhuǎn)換端壳,可以通過將基本數(shù)據(jù)類型值與空字符串做連接運算(即加法運算)實現(xiàn)坟漱;如果要實現(xiàn)“String類型數(shù)據(jù)→基本數(shù)據(jù)類型數(shù)據(jù)”的轉(zhuǎn)換,可以通過包裝類的“parse(字符串值)”方法實現(xiàn)更哄。