目录
1、自动类型转换
什么是自动类型转换?
类型范围小的变量,可以直接赋值给类型范围大的变量。
package com.gangdan.type;
public class TypeConversionDemo1 {
public static void main(String[] args) {
byte a = 12;
int b = a;//发生了自动类型转换:类型范围小的变量,可以直接赋值给类型范围大的变量。
System.out.println(a);
System.out.println(b);
}
}
自动类型转换的其他形式
2、表达式的自动类型转换
什么是表达式的自动类型转换?
在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算。
注意事项:
表达式的最终结果类型由表达式中的最高类型决定。
在表达式中,byte、short、char 是直接转换成int类型参与运算的。
具体应用代码如下:
package com.gangdan.type;
public class TypeConversionDemo2 {
public static void main(String[] args) {
byte a = 10;
int b = 20;
long c = 30;
long rs = a + b + c;
System.out.println(rs);
double rs2 = a + b + 1.0;
System.out.println(rs2);
byte i = 10;
short j = 30;
int rs3 = i + j;
System.out.println(rs3);
//面试笔试题
byte b1 = 10;
byte b2 = 80;
int b3 = b1 + b2;
System.out.println(b3);
}
}
3、强制类型转换
什么是强制类型转换?
强行将类型范围大的变量、数据赋值给类型范围小的变量。
操作步骤
具体操作代码:
package com.gangdan.type;
public class TypeConversionDemo3 {
public static void main(String[] args) {
int a = 20;
byte b = (byte)a;
System.out.println(a);
System.out.println(b);
int i = 1500;
byte j = (byte) i;
System.out.println(j);//数据溢出
double d = 99.5;
int m = (int) d;
System.out.println(m);//丢掉小数部分,保留整数部分
}
}
注意事项:
强制类型转换可能造成数据(丢失)溢出;
浮点型强转成整型,直接丢掉小数部分,保留整数部分返回
Java小白不足之处欢迎提出。