1. 程式人生 > 其它 >強制轉換 自動轉換的問題 注意點

強制轉換 自動轉換的問題 注意點

public class Demo04 {
public static void main(String[] args) {
int i=128;
byte b=(byte) i;//記憶體溢位

//強制轉換 (型別)變數名 高-->低
//自動轉換 低-->高

double d=i;//自動轉換
System.out.println(i);
System.out.println(b);
System.out.println(d);
/*
注意點
1.不能對布林值進行轉換
2.不能把物件型別轉換為不相干的型別
3.在把高容量轉換為低容量的時候強制轉換,強制轉換
4.轉換時可能存在記憶體溢位,或者精度問題!
*/
System.out.println("==============================");
System.out.println((int)23.7);//23
System.out.println((int)-45.89f);//-45

System.out.println("==============================");
char c='a';
int g=c+1;
System.out.println(g);
System.out.println((char) g);

}
}
public class Demo05 {
public static void main(String[] args) {
//操作比較大的數的時候,注意溢位問題
//JDK7新特性,數字之間可以用下劃線分割
int money=10_0000_0000;
int years=20;
int total=money*years;//-1474836480 計算的時候溢位了
long total2=money*years;//-1474836480 預設是int,轉換前已經存在問題了
        long total3=money*((long)years);//先把一個數轉換為long
System.out.println(total3);

}
}