我所理解的Java运算符

一、算数运算符

+ - * / % ++ - –

二元运算符

1、+ 运算符

  • 字符执行时,会根据自作向右的顺序执行
  • 如果数值类型的变量和字符进行求和,先将字符转成对应的数值进行求和
  • 整数运算结束后,结果一定是整数
  • byte/short/char在运算后结果自动提升为int
  • 如果存在字符串常量,‘+’则执行拼接操作(可以于任何类型进行拼接)

2、-运算符

  • 小数不存在精确运算

3、%运算

  • 取余结果的正负取决于左侧值的正负
  • 操作数可以为浮点数,一般使用整数

4、/运算

  • 整数/0 抛出异常ArithmeticException 算数异常
  • 非零小数/0 非零数字/0.0 infinity 无穷
  • 0.0/0 0/0.0 0.0/0.0 NaN 非数字
  • 如果参与运算数据都为整数。结果一定为整数
  • 如果参与运算数据都为小数,结果一定为小数
  • 4/5 结果等于0

5、*运算

  • 规则同/运算

一元运算符

1、++运算

  • a++先赋值后++
  • ++a先++后赋值
  • byte b=127 b++结果为-128
    • 无论byte、short、char在操作++、–时,底层会默认添加一个强制类型转换,结果类型是原来的类型

2、–运算

  • 规则同++运算
  • a–先赋值后–
  • –a先–后赋值

二、赋值运算符

=、+=、-=、/=、*、&=、|=、^=、>>=、<<=、<<<=、>>>=

  • 除了=以外,其余符号都要求变量先有值次啊能使用
  • byte/short/char可以参与赋值运算

三、关系运算符

  • 类型
    • ==
    • !=
    • >
    • <
    • >=
    • <=
  • 注意:
    • ==、!= 是所有(基本、引用)数据类型都可以使用的
    • >、<、<=、>=仅针对于数值类型(byte、short、int、long、float、double)以及char使用
    • 运算结果一定是boolean类型
    • 比较值的关系

四、逻辑运算符

  • 作用:
    • 用于连接两边都是布尔值或者布尔表达式的情况
  • 类型:
    • & 逻辑与
      • 遇见False则False
    • | 逻辑或
      • 遇见True则True
    • ^ 逻辑异或
      • 相同false,反之true
    • ! 逻辑非
      • 对布尔值取反,true为false,false为true
    • && 短路与
      • 运算规律与逻辑与相同,存在短路操作
      • 当左边布尔值为false,右边表达式则不执行
    • || 短路或
      • 运算规律与逻辑或规则相同,存在短路操作
      • 当左边布尔值为true,右边表达式则不执行

五、位运算符

  • 规则
    • & 按位与
      • 遇0则0,双1则1
    • | 按位或
      • 遇1则1
      • 任意整数|0 还是本身
      • 任意负数|负数 还是负数
    • ^ 按位异或
      • 相同则0,不同则1
      • 一个属按位异或两次等于他自身
      • 两个数交换
        • 中间变量
        • 求和
          • x=x+y y=x-y x=x-y
        • 按位异或
          • x=x^y y=x^y x=x^y
    • ~ 按位取反
      • 每一位按位取反
    • << 按位左移
      • 无论正负,向左移动几位,就在最右边添加几个0
    • 无符号右移

      • 无论正负数,向右移动极为就在最高位添加几个0

六、三目运算符

  • 一元(~a)
  • 二元(a+b)
  • 三元(一定会有返回值,且仅有一个值)
    • 格式
      • 布尔表达式?表达式1:表达式2
    • 执行流程
      • 先计算布尔表达式,如果结果位true则执行表达式1,如果结果为false,就执行表达式2
    • 注:
      • 三木运算符只会返回一个值
      • 三目运算符可以嵌套使用
      • 当没有接受值类型时,两个表达式类型可以任意
      • 如果两个表达式类型都是基本数据类型,那么就会有类型提升

七、运算符的优先级

file

  • ()
  • 一元 ++ – !~ 自右向左
    • / %
  • 加减
  • 移位
  • 关系
  • 相等判断
  • 按位与或
  • 按位异或
  • 按位或
  • 逻辑与
  • 逻辑或
  • 三目
  • 赋值
  • 逗号

八、心灵鸡汤

只有一条路不能选择那就是放弃的路;只有一条路不能拒绝那就是坚持的路。

file


感谢阅读,水平有限,只是记录自己学习生涯中的漫漫IT路,如有错漏,还请不吝赐教

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章