Java 运算符中的隐式转换
Java 有以下几种运算符:
- 算数运算符
- 逻辑运算符
- 位运算符
- 关系运算符
- 赋值运算符
- 其他运算符
算数运算符
算数运算符有 +
-
*
/
%
++
--
+
-
*
/
%
运算符,会自动把位长小于 int 的数据转化成 int 类型,当数据是 int、long 类型,会按照原有类型继续计算。例如下面的例子就会报类型不匹配错误
java
体验AI代码助手
代码解读
复制代码
byte x = 1; byte y = 1; byte z = x + y;
++
--
运算符,操作数不会进行隐式转化。例如下面的例子就不会报错
java
体验AI代码助手
代码解读
复制代码
byte x = 1; x += 1;
逻辑运算符
逻辑运算符有 &&
||
!
逻辑运算符只会有 boolen 类型数据参与,没有数据类型转换
位运算符
位运算符有 &
|
^
~
<<
>>
>>>
位运算符会自动把位长小于 int 的数据转化成 int 类型,对于 int、long 类型,会按照原有类型继续计算。例如下面的例子就会报类型不匹配错误
java
体验AI代码助手
代码解读
复制代码
byte x = 1; byte y = 1; byte z = x >> 1;
关系运算符
逻辑运算符有 ==
!=
>
<
>=
<=
关系运算符没有类型转换
赋值运算符
赋值运算符有 =
+=
-=
*=
/=
%=
<<=
>>=
&=
|=
^=
赋值运算符没有类型转换
其他运算符
其他运算符有 ?:
instanceof
其他运算符没有类型转换
总结
+
-
*
/
%
&
|
^
~
<<
>>
>>>
这些运算符在运算时,位长小于 int 的数据会隐式转换成 int,得出的结果也是 int 类型