型別的轉換
Java是一個強型別編程語言,當不同的型別的變數之間相互賦值的時候,就會出現嚴格的校驗,
1.int和long/double的相互賦值:
int a=20;
long b=12;
a=b;//編譯出錯,有精度損失
b=a;//編譯通過
int a=10;
double b=1.2;
b=a;//編譯通過
a=b;//編譯出錯,有精度損失
總結不同型別之間的賦值,表示范圍小的型別可以轉換成范圍大的型別,反之不能轉換(int 可以賦值給long,long不能賦值給int)
2.int與boolean相互轉換
int a=12;
boolean b=false;
b=a;//編譯出錯,不兼容
a=b;//編譯出錯,不兼容
總結 int與boolean不能相互轉換
3.int字面值常量給byte賦值
byte a=100;//編譯通過
byte a=129;//編譯出錯,
結論 int字面值常量給byte賦值時,檢查常量是否在byte的資料范圍內(-128~127),超出范圍會編譯出錯(129),在范圍內則會編譯通過(100),
4.強制型別轉換
int a=3;
double b=2.3;
a=(int)b;//編譯通過
int a=2;
bollean b=false;
a=(int)b;
結論 使用強制型別轉換程序中,可以把比如double long等與 int相關的型別可以轉換成int,但是會有精度丟失,比如b=2.3強制型別專換為2,但是互不相干的型別之間無法轉換(boolean).
數值提升
1.int 和Long的混合運算
int a=2;
long b=3;
int c=a+b;//編譯出錯,出現精度丟失
long c=a+b;//編譯通過
結論與前面int與long相互轉換類似,如果要求轉換為int型,可以使用強制型別轉換,
2.byte和byte的運算
byte a=3;
byte b=4;
byte c=a+b;
System.out.println(c);//編譯出錯
byte a=3;
byte b=4;
byte c=(byte)(a+b);
System.out.println(c);
結論:byte與byte是相同型別的,但是仍然會顯示編譯出錯,因為byte與byte運算時,首先會先轉換為int型別,得到的結果仍是int,若要轉換為byte,可能會出現損失,因此轉換需要強制型別轉換,
int與String之間的相互轉換
//int轉換為String
int num=10;
String str1=num+"";//方法1
String str2=String.valueof(num);
//String轉換為int
String str="100";
int num=Integer.paraseInt(str);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/250670.html
標籤:java
