类型转换


public class Demo05 {
public static void main(String[] args){
// 低 ------------------------------------ 高
// byte, short, char, int, long, float, double
int i = 128;
// 强制转换 (类型)变量名 高--->低
byte b = (byte)i; // 内存溢出
System.out.println(i);
System.out.println(b);
// 自动转换 低--->高
double d = i;
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 i1 = c + 1;
System.out.println(i1); // 98
System.out.println((char) i1); //b
}
}
public class Demo06 {
public static void main(String[] args){
// 操作比较大的数的时候,注意溢出问题
// JDK7新特性,数字之间可以用下划线分割。
int money = 10_0000_0000;
System.out.println(money); // 1000000000
int years = 20;
int total = money * years; // -1474836480, 计算的时候溢出了
long tatol2 = money * years; // -1474836480 , 计算之前已经存在问题了
long tatol3 = money * (long)years; // 20000000000
}
}
浙公网安备 33010602011771号