Java运算符中的隐式转换

268 阅读1分钟

Java 运算符中的隐式转换

Java 有以下几种运算符:

  • 算数运算符
  • 逻辑运算符
  • 位运算符
  • 关系运算符
  • 赋值运算符
  • 其他运算符

算数运算符

算数运算符有 + - * / % ++ --

  • + - * / % 运算符,会自动把位长小于 int 的数据转化成 int 类型,当数据是 int、long 类型,会按照原有类型继续计算。例如下面的例子就会报类型不匹配错误
    byte x = 1;
    byte y = 1;
    byte z = x + y;
  • ++ -- 运算符,操作数不会进行隐式转化。例如下面的例子就不会报错
    byte x = 1;
    x += 1;

逻辑运算符

逻辑运算符有 && || !

逻辑运算符只会有 boolen 类型数据参与,没有数据类型转换

位运算符

位运算符有 & | ^ ~ << >> >>>

位运算符会自动把位长小于 int 的数据转化成 int 类型,对于 int、long 类型,会按照原有类型继续计算。例如下面的例子就会报类型不匹配错误

    byte x = 1;
    byte y = 1;
    byte z = x >> 1;

关系运算符

逻辑运算符有 == != > < >= <=

关系运算符没有类型转换

赋值运算符

赋值运算符有 = += -= *= /= %= <<= >>= &= |= ^=

赋值运算符没有类型转换

其他运算符

其他运算符有 ?: instanceof

其他运算符没有类型转换

总结

+ - * / % & | ^ ~ << >> >>>

这些运算符在运算时,位长小于 int 的数据会隐式转换成 int,得出的结果也是 int 类型