类型转换
自动类型转换
什么是自动类型转换
- 类型范围小的变量,可以直接赋值给类型范围大的变量。
为什么要进行自动类型转换
自动类型转换的底层原理
package com.google.type;
public class TypeDemo01 {
public static void main(String[] args) {
byte number_a = 10;
int number_b = number_a;
System.out.println(number_b);
int number_c = 30;
double number_d = number_c;
System.out.println(number_d);
char ch = 'a';
int character = ch;
System.out.println(character);
}
}
自动类型转换的其他形式
byte short int long float double
表达式的自动自行转换
- 在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算。
byte 、short、char int long float double
注意事项
表达式的最终结果类型由表达式中的最高类型决定。
在表达式中,byte、short、char 是直接转换成int类型参与运算的。
表达式的自动类型转换是什么样的?
表达式的最终结果类型是由谁决定的?
表达式的有哪些类型转换是需要注意的?
- byte short char是直接转换成int类型参与运算的。
强制类型转换
- 可以强行将类型范围大的变量、数据赋值给类型范围小的变量。
强制类型转换格式
数据类型 变量2 = (数据类型)变量1、数据
底层原理
注意事项
强制类型转换可能造成数据(丢失)溢出;
浮点型强转成整型,直接丢掉小数部分,保留整数部分返回。
强制类型转换有哪些需要注意的?
- l可能出现数据丢失。
- 小数强制转换成整数是直接截断小数保留整数。
代码演示
package com.google.type;
public class TypeDemo03 {
public static void main(String[] args) {
int number_a = 30;
byte number_b = (byte) number_a;
double score = 99.9;
int score_2 = (int) score;
}
}