三. 操作符-运算符

运算符

算术运算符

  • +加
  • -减
  • *乘
  • \除
    • 当运算式中有小数时,允许除数为0或0.0。
      • 被除数为正,结果为正无穷(Infinity)
      • 被除数为负,结果为负无穷(-Infinity)
      • 当被除数为0,结果为NaN(NaN != NaN)
  • %取模
    • 当运算式中有小数时,取模数为0或0.0
      • 结果一定为NaN
  • ++自增
  • --自减
    • 运算顺序
int a = 5;
boolean b = (a++ > 5);// b=false
int c = 5;
boolean d = (++c > 5);//d = true

Math方法

位运算符

  • & 位与
  • | 位或
  • ^ 位异或
  • ~ 非
  • << 左移
  • >> 右移
  • >>> 无符号右移

位移运算规则

  • 低于int类型位移,操作数会先变成int型,再位移
  • 对int类型位移,若位移数大于32,位移数对32取余,再基于取余的结果进行位移
  • 对long类型位移,位移数大于64,位移数对64取余,再基于取余的结果进行位移
  • 位移运算不改变操作数本身的大小

赋值运算符

  • 连续赋值
int a = 0;
int b = 0;
a = b = 5; 
  • 拓展赋值
    • +=
    • -=
    • /=
    • *=
    • %=
    • &=
    • |=
    • ^=
    • <<=
    • >>=
    • >>>=

推荐使用拓展的赋值运算符,能使程序:

  • 性能更好
  • 更健壮(什么叫健壮?)

比较运算符

  • >
  • >=
  • <
  • <=
  • ==
  • !=

> >= < <=

  • 只能比较数值类型变量,
  • 只比较值不比较类型

== !=

  • 可以比较基本类型,引用类型
  • 基本类型比较值,引用类型比较地址
  • 是否可比
    • 数值类型只能和数值类型比
    • boolean只能和boolean比
    • 引用类型只能和其子类或者父类比较地址

逻辑运算符

  • & 与
  • | 或
  • ! 非
  • ^ 异或
  • && 短路与
  • || 短路或

&与&&区别

  • &会执行完两侧的判断后获得返回结果
  • &&当左侧的判断为false时,直接返回false,右侧判断不继续执行

|与||区别

  • |会执行完两侧的判断后获得返回结果
  • ||当左侧的判断为true时,直接返回true,右侧判断不继续执行

三目运算符

  • {exception}? A : B;
    三目运算符可以嵌套使用

与if else区别

  • 三目的判断执行后,分支只能执行单行代码

类型相关运算符

  • instanceof (type)
    见第五章
posted @ 2020-07-17 12:12  度亚  阅读(77)  评论(0)    收藏  举报