谷歌最新薪資曝光:研究崗年薪最高達 200 多萬,但遠遜於人事主管
阿新 • • 發佈:2021-06-18
強制轉換與自動轉換
強制轉換是由高向低轉換,自動轉換是又低到高轉換。
自動轉換如:
public class Demo01 {
public static void main(String[] args) {
long a=128l;
float f=a;
System.out.println(a);
System.out.println(f);
}
}
自動轉換時注意溢位問題:
int a=100_0000;
int b=3000;
long c=a*b;
System.out.println(c);
兩個 int 相乘得到的結果是 int, 相乘的結果超出了 int 的表示範圍,出現溢位。這種情況,一般把第一個資料轉換成範圍大的資料型別再和其他的資料進行運算。
強制轉換如:
public class Demo01 {
public static void main(String[] args) {
float f=128.3f;
long a=(long)f;
int i=128;
byte b=(byte)i;
System.out.println(f);
System.out.println(a);
System.out.println(i);
System.out.println(b);
}
}
強制轉換時遇到的問題:精度問題與溢位問題。
上圖強制轉換就出現了丟失精度,資料溢位(128超出了byte 型別表示的範圍)。