Day04类型转换
类型转换
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出,或者精度问题!
高转低,强制转换;低转高,自动转换
低------------------------------------------->高
byte,short,char-> int -> long-> float -> double
int i=128;
byte b=(byte)i; //内存溢出
//强制转换 (变量名)变量类型 从高到低
//自动转换 从低到高
System.out.println(i);//128
System.out.println(b);//-128
//精度
System.out.println((int)23.7f);//23
System.out.println((int)24.6);//24
int a=10_0000_0000;
int b=20;
System.out.println(a*b);//-1474836480, 计算的时候溢出了
System.out.println((long)(a*b));//-1474836480 a*b计算的时候已经出错了
System.out.println(((long)(a))*b);//20000000000 先把一个数转换为long
//在Java中,当一个long类型的数和一个int类型的数相乘时,结果通常会是long类型。Java在执行算术运算时,会根据操作数的类型选择适当的数据类型来存储结果。在这种情况下,由于long类型的数值范围比int类型更大,所以结果会被存储为long类型。