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