类型转换
小数的优先级高于整数
强制转换:高–低 (类型)变量名
自动转换:低–高
public class Demo05 {
public static void main(String[] args) {
int i=128;
byte b=(byte)i;//强制转换 (类型)变量名
System.out.println(b);//byte最大值是127,当赋值超过范围时会产生内存溢出的问题 所以在转换时尽量避免内存溢出的情况
int i2=128;
double d=i2;
System.out.println(d);
/*
注意点
1.不能对boolean值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换为低容量的时候:强制转换
4.转换的时候可能存在内存溢出或者精度问题
*/
System.out.println("===============");
System.out.println(23.7);//结果为23,精度问题
System.out.println(45.89f);//结果为45,精度问题
System.out.println("===============");
char c='a';
int i3=c+1;
System.out.println(d);
System.out.println((char)i3);
System.out.println("===============");
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money=10_0000_0000;//加了下划线比较好区分,运行时下划线不会被识别
int years=20;
int total=money*years;//结果为-1474836480,出现了内存溢出的问题
long total2=money*years;//默认是int,所以结果会变成int,转换之前已经存在问题了
long total23=money*(long)years;//先把一个数转为long,在计算前就把精度解决掉了
System.out.println(total23);
//float和long类型的值后面都用大写,F和L
}
}