自动类型转换
byte b=3;
int x=b;//将byte类型的变量b转换为int类型无需特殊声明
强制类型转换
两种类型不兼容,或者目标类型取值范围小于源类型时,自动类型转换无法进行,这时需要强制类型转换。
如:
public class test {
public static void main(String[] args) {
int num=298;
byte b=num;
System.out.println(b);
}
}
会报错,提示我们将num强制转换为byte类型:
public class test {
public static void main(String[] args) {
int num=298;
byte b=(byte)num;
System.out.println(b);
}
}
输出42
这是由于byte是1字节,只有八位,int是4字节有32位,前面三个字节的数据就会丢失
也就是00000000 00000000 00000001 00101010
变成了00101010