(一)自動類型轉換
在java 程序中,不同的基本類型的值經常需要進行相互類型轉換,類型轉換分爲自動類型轉換和強制類型轉換。布爾類型boolean佔有一個字節,由於其本身所代碼的特殊含義,boolean類型與其他基本類型不能進行類型的轉換(既不能進行自動類型的提升,也不能強制類型轉換), 否則,將編譯出錯。
java的所有數值型變量可以進行相互轉換,如果系統支持把某種基本類型的值直接賦值給另一種基本類型的變量,則這種方式成爲自動類型轉換。
當把一個表數範圍較小的數值或變量直接賦給另外一個表數範圍比較大的變量時,系統將可以自動類型轉換,否則需要強制轉換。
圖中箭頭左邊的數值可以自動轉換爲右邊的數值。
(2)byte型可以轉換爲short、int、、long、float和double;
(3)short可轉換爲int、long、float和double;
(4)char可轉換爲int、long、float和double;
(5)int可轉換爲long、float和double;
(6)long可轉換爲float和double;
(7)float可轉換爲double;
(二)基本類型轉換爲字符串
不僅如此,把任何基本類型的值和字符串進行連接運算時,基本類型的值將自動轉換成爲字符串類型,雖然字符串類型不是基本類型,而是引用類型。因此,如果想將基本類型的值轉換爲對應的字符串,可以把基本類型的值和一個空字符串進行連接。
(三)強制類型轉換
強制類型轉換,即強制顯示的把一個數據類型轉換爲另外一種數據類型。
如果希望把圖中箭頭右邊的類型轉換爲左邊的類型,則必須進行強制類型轉換,強制類型轉換的格式:
(targetValue) value
強制類型轉換的運算符是圓括號,當進行強制類型轉換的時候,類似把一個大瓶子裏的水倒入一個小瓶子裏,如果大瓶子裏的水不多還好,如果大瓶子了的水很多,將會引起溢出,從而造成數據丟失。這種轉換也被稱爲縮小轉換。
(四)表達式的自動提升
當一個算數表達式中包含多個基本類型的值的時候 ,整個算數表達式的數據類型將發生自動提升。java定義瞭如下的自動提升規則: 1 所有的byte類型,short類型和char類型將被提升到int類型。 2 整個算數表達式的數據類型自動提升到與表達式中最高等級操作數同樣的類
(五)總結
1 java中整數類型默認是int類型,小數類型默認是double類型。
2 char可以當做一種特殊的整數類型
3 int無法轉換爲boolean
4 小數類型轉爲整數類型,小數可能被捨棄,出現精度損失,所以需要強制轉換。
5 boolean 類型不能轉換爲其它數據類型。