day4-java中类型的转换
由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
运算中,不同类型的数据先转换为同一类型,然后进行运算。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-htkrqyky-1625665974748)(…/…/AppData/Roaming/Typora/typora-user-images/image-20210707191247543.png)]
规律:字节越长地位越高,小数类型大于证整数类型
类型转换
public class Demo04 {
public static void main(String[] args) {
int i=128;
//强制转换(类型)+变量或名;
byte b= (byte) i;
System.out.println(i);//128
System.out.println(b);//-128
/*
* 注意点:
* 1.不能对布尔值进行转换
* 2.不能把对象类型转换为不相干的类型
* 3.在把高容量转换为低容量的时候,强制转换
* 4.转换的时候可能存在内存溢出,或者精度问题
*
* */
System.out.println("=========================");
System.out.println((int)48.5);//48
System.out.println((int)-45.23f);//45
System.out.println("=====================");
char c='a';
int d=c+1;
System.out.println(d);
System.out.println((char)d);
//操作数过大时注意溢出问题
//jdk7后,数字之间可以用下划线分割,便于查看
int money=10_0000_0000;
int years=20;
int total=money*years;
System.out.println(total);//因为溢出所以输出的结果为:-1474836480
double t1=money*years;//因为转换类型是在计算结果之后做的,所以输出结果还是:-1474836480
double t2=money*(double)years; //在运算之前强转,就可以输出正常:
System.out.println(t2);//2.0E10
}
}
当高位转低位时需要强制转换,低位转高位不需要强制转换(自动转换),高位转低位时要看一下原本的数据是不是超出低位取值范围,超出时就会出现内存溢出的现象