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


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

2.比較他們的字節數

備注:1字節(Byte)=8位(Bit)

3.轉換中的知識點

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

*char 可以當做一中特殊的整數類型;

*int無法轉換為boolean;

*小數類型轉為整數類型,小數可能被舍棄,所有出現精度損失,所以需要強制轉換;

*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.四則運算中

/*
1、如果兩個操作數中有一個是double類型,另一個就會轉換為double類型;
2、否則,如果有一個操作數是float,另一個就會轉化為float;
3、否則,如果有一個操作數是long,另一個就會轉換為long;
4、否則,兩個操作數都將轉換為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型)

歡迎關注我的微信公眾號:安卓圈


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM