//代码启动
int a=3; byte b=3; if(a==b) --> returns true
//代码结束
发布于 2020-07-21 11:18:28
在java中,自动类型转换将任何小数据类型转换为这两种类型中较大的类型。因此,当您将byte b与int a进行比较时,它被转换为int b。
byte b
int a
int b
double是最大的数据类型,而byte是最小的。
double
byte
发布于 2020-07-21 11:27:11
编译器不是像您猜的那样只比较这两个操作数中最不重要的8位,而是将24 0或(如果字节为负数)添加到字节中,使其与int大小相同。这被称为二进制数值提升,并在JLS的第5.6.2条中指定。从byte到int的转换在第5.1.2节中指定。
int
https://stackoverflow.com/questions/63013056
相似问题