java基本數據類型及相互間的轉換

1.首先複習一下java的基本數據類型,見下圖java

2.比較他們的字節數面試

備註:1字節(Byte)=8位(Bit)微信

3.轉換中的知識點spa

*java中整數類型默認的int類型;小數類型默認的double;code

*char 能夠當作一中特殊的整數類型;對象

*int沒法轉換爲boolean;blog

*小數類型轉爲整數類型,小數可能被捨棄,全部出現精度損失,因此須要強制轉換;it

*boolean 類型不能轉換成任何其它數據類型;編譯

byte b2 = 120; //沒報錯的緣由: //編譯時候,進行檢查,看賦值大小是否超過變量的類型所容納的範圍 //若是超過,報錯:從int轉換到byte可能會有損失,若是沒超過,編譯經過
float f3 = 100L; 這種狀況,整數部分,能夠直接賦值給float整數部分
float f1 = 100.9; 這種狀況,由於默認的是double,若是這樣轉換,有可能失去小數點,必須強制轉換
long l3 = 1000.9f; 小數轉爲整數,小數可能丟失,須要強制轉換
double d2 = 10.9d; int i2 = d2; //錯誤: 不兼容的類型: 從double轉換到int可能會有損失
char c1 = 'a'; int i3 = c1; //自動轉換

int i4 = 100; //char c2 = i4;// 錯誤: 不兼容的類型: 從int轉換到char可能會有損失

4.四則運算中table

/*
一、若是兩個操做數中有一個是double類型,另外一個就會轉換爲double類型;
二、不然,若是有一個操做數是float,另外一個就會轉化爲float;
三、不然,若是有一個操做數是long,另外一個就會轉換爲long;
四、不然,兩個操做數都將轉換爲int類型。
*/

*面試陷阱

byte b1 = 10; byte b2 = 11; //錯誤: 不兼容的類型: 從int轉換到byte可能會有損失 //不然,兩個操做數都將轉換爲int類型。
byte b3 = b1 + b2 //錯誤
byte b3 = (byte)(b1 + b2); //正確

*面試陷阱2:

short s1 = 1; s1 = s1 + 1; //錯誤: 不兼容的類型: 從int轉換到short可能會有損失

short s2 = 1; s2 += 1; // 等同於short s2 = (short)(s2 + (short)1); //正確

5.最後是從小到大順序圖一張

6.面試:什麼是不可變對象(immutable object)?

解析:不可變對象指對象一旦被建立,狀態就不能再改變。任何修改都會建立一個新的對象,如String、Integer及其它包裝類。

7.隱式類型轉換

當將佔位數的類型賦值給佔位數的類型時,java自動使用隱式類型轉換(如int型轉爲long型)

8.顯式類型轉換

當把在級別的變量的值賦給級別變量時,必須使用顯式類型轉換運算(如double型轉爲float型)

歡迎關注個人微信公衆號:安卓圈

相關文章
相關標籤/搜索