Java简单的数据类型转换
数据类型容量低—>高
byte——>short——>char——>int——>long——>float——>double
public class Demo05 {
public static void main(String[] args) {
int i=128;
byte b =(byte)i;//输出为-128,原因为内存溢出
//强制转换 (类型)变量名 高到低
//自动转换 低到高
System.out.println(i);
System.out.println(b);
/*
注意点:
1. 不能对布尔值进行转换
2. 不能把对象类型转换为不相干的类型
3. 在把大容量转换成低容量时,强制转换
4.转换的时候可能产生内存溢出或精度问题
*/
System.out.println("=====================================================");
System.out.println((int) 25.3);//25
System.out.println((int)-45.86f);//-45
System.out.println("=====================================================");
char c ='a';
int d=c+1;
System.out.println(d);//98
System.out.println((char) d);//b
}
}
操作较大的数时
public class Demo06 {
public static void main(String[] args) {
//操作较大的数时,注意溢出问题
int money=10_0000_0000;
int years=20;
int total1=money*years;//输出为-1474836480,计算时溢出了
long total2=money*years;//计算时默认是int,转换前已经溢出了
long total3=money*((long)years);//先把一个数转换为long,输出为20000000000
System.out.println(total1);
System.out.println(total2);
System.out.println(total3);
}
}