自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型,使用时要加上强制转换符(),但是可能会造成精度降低或者溢出,要格外注意
public static void main(String[] args) {
// 演示强制类型转换
int n1 = (int)1.9;
System.out.println("n1 = " + n1); // n1 = 1 有精度损失
int n2 = 2000;
byte b1 = (byte) n2; // byte范围 -128 ~ +128
System.out.println("b1 = " + b1); // b1 = -48 数据溢出
}
强制类型转换的一些细节
强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级
public static void main(String[] args) {
// 强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级
int x = (int) 10 * 3.5 + 6 * 1.5; //编译错误: 6*1.5的结果是double
int y = (int) (10 * 3.5 + 6 * 1.5); // 编译正确
}
char类型可以保存int的常量值,但不能保存int的变量值,需要强转
byte和short类型在进行运算时候,当做int类型处理