Java数据类型转换
一、自动类型转换
1.1 什么是自动类型转换?
- 类型范围小的变量,可以直接赋值给类型范围大的变量。
public class Demo1 {
public static void main(String[] args) {
byte a = 10;
int b = a;
System.out.println(a);
}
}
输出结果:10
1.2 为什么要学习自动类型转换?
- 存在不同类型的变量赋值给其他类型的变量
二、表达式的自动类型转换
2.1 转换规则
- 在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算。
public class Demo2 {
public static void main(String[] args) {
byte a = 10;
int b = 20;
double c = 1.0;
double sum = a + b + c;
System.out.println(sum);
}
}
输出结果:31.0
2.2 表达式的最终结是由谁决定的?
- 表达式的最终结果类型由表达式中的最高类型决定。
2.3 表达式中有哪些类型转换是需要注意的?
- byte short char 是直接转换成int类型参与运算的。
三、强制类型转换
3.1 什么是强制类型转换?
- 可以强行将类型范围大的变量、数据赋值给类型范围小的变量。
- 数据类型 变量 = (数据类型)变量、数据
public class Demo3 {
public static void main(String[] args) {
int a = 20;
byte b = (byte) a;
System.out.println(b);
}
}
数据结果:20
3.2 强制类型转换有哪些需要注意的?
- 可能出现数据丢失。
- 小数强制转换成整数是直接截断小数保留整数。