显式转换

从表示范围大的类型转换为表示范围小的类型,需要强制转换,称为显式转换。强制类型转换的语法格式就是加一个括号,然后给出想要转换的目标类型。

例如:

1
2
3
4
5
6
7
8
public static void main(String[] args) {
//int类型300转换成2进制为00000000 00000000 00000001 00101100
//转换成byte去掉前3个8位:00101100
//32+8+4=44
byte b1=(byte)300;
//控制台输出44
System.out.println(b1);
}

隐式转换

从表示范围小的类型转换为表示范围大的类型,可以直接转换,称为隐式转换。隐式类型转换又可以称为自动类型转换,就是由系统自动完成的类型转换

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
public static void main(String[] args) {
//数据类型转换之隐式转换(小的赋值给大的)
//4个字节,占4个8位,int类型转换成byte时,去掉前3个8位(3个字节)
int x=3;
//1个字节,占1个8位,byte类型转换成int时,在前面添加3个8位(3个字节)
byte b=4;
/*小的数据类型和大的数据类型转换时,会将小的数据类型转换成大的数据类型,
然后再进行运算,本程序中将byte类型转换成int类型,最终结果是int类型*/
x=x+b;

//控制台输出7
System.out.println(x);
}

PS.

自动类型转换规则:二元运算符连接两个值 | LeDao的博客 (zoutl.cn)