/*
强制类型转换
1. 特点:代码需要进行特殊的格式处理,不能自动完成。
2. 格式:范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据;
注意事项:
1. 强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出。
2. byte/short/char这三种类型都可以发生数学运算,例如加法“+”.
3. byte/short/char这三种类型在运算的时候,都会被首先提升成为int类型,然后再计算。
4. boolean类型不能发生数据类型转换
*/
public class Demo01DataType {
public static void main(String[] args) {
int num = (int) 100L;
System.out.println(num);
int num2 = (int)6000000000L;
System.out.println(num2);
// 6000000000的大小超过了int的范围这里强行转换成int,会数据溢出,最终结果为1705032704
int num3 = (int) 3.9;
System.out.println(num3);
// double型转换成int会有精度损失,答案为3
char c1 = 'A';
System.out.println(c1 + 1); // 66. 这里A被翻译成65
// char类型发进行数学运算,会被先翻译成对应的数字
byte num4 = 50;
byte num5 = 20;
//byte result1 = num4 + num5; 这样会报错
//因为***byte short char 做数学运算结果会默认转成int型***
//这样才是正确的
int result1 = num4 + num5;
System.out.println(result1); //70
// 字符对应了数字,可以直接传递给数字型
char c2 = '中';
int num6 = c2;
System.out.println(num6);
}
}