Java运算符

运算符的分类

Java运算符_第1张图片

算术运算符

Java运算符_第2张图片
注意:

  • 取模时,模数符号只与被模数有关
  • 乘除可以调换的情况下,建议先乘后除
  • 前++后运算赋值,先对自身进行加一。后++先运算赋值,然后再对自身加一。前 - - 和后 - - 同理
赋值运算符
1 2 3 4 5
= += -= *= /=

注意:

  • 当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。支持连续赋值。
  • a += 2 可以理解为a = a + 2 ,但是二者并不相同。例如,byte a = 1;执行a = a + 2 时就会因为数据类型问题,导致编译不通过。但是a += 2不会出现这个问题
比较运算符

Java运算符_第3张图片
注意:

  • 比较运算符的结果都是boolean型,也就是要么是true,要么是false。
  • 比较运算符“==”不能误写成“=”
逻辑运算符
逻辑与 逻辑或 逻辑非 短路与 短路或 逻辑异或
& ! && || ^

运算结果
Java运算符_第4张图片
注意:

  • 逻辑运算符用于连接布尔型表达式,在Java中不可以写成33 & x<6 。
  • &(逻辑与)和&&(短路与)的区别:简单理解,短路与较为智能,当可以判断结果时,就不会再进行运算符后面的计算,比如,当短路与左边的结果为假时,就可以知道最终的结果必然为假,右边将直接跳过运算,而逻辑与则会计算完成俩边的式子。同理,逻辑或与短路或的区别也是如此。
  • 异或运算法则:相同则假,相异则真。
位运算符Java运算符_第5张图片Java运算符_第6张图片

注意:

  • 位运算符都是对底层的二进制补码进行的比较移位等运算,了解它的补位规则就可以得出正确的运算结果
  • 正数右移 (>>)最高位用0补,负数右移 (>>),最高位用1补,无符号右移 (>>>) 最高位不分正负,都用0补
  • 左移,在一定范围内,左移一位就乘以2
  • 右移,在一定范围内,右移一位就除以2
三元运算符

Java运算符_第7张图片
注意:

  • 表达式1和表达式2的返回结果需要是同种数据类型,不同的话可以自动类型提升成相同的数据类型也是可以的
  • 可以用if-else替代三元运算符,如果都可以使用的情况下,建议使用三元运算符提高效率
  • 三元运算符可以嵌套使用,但是不建议
  • 三元运算符与if-else的联系与区别
    • 三元运算符可以简化if-else语句
    • 三元运算符要求必须返回一个结果
    • if后面的代码块可以有多个语句

运算符的优先级

  • 只有单目运算符(第2行),三元运算符(第 - 4行),赋值运算符(最后3行)是从右往左(R --> L)运算的
  • 运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如下表,上一行运算符总优先于下一行。
    Java运算符_第8张图片
    拓展
    单目运算符:指运算所需变量为一个的运算符,即在运算当中只有一个操作数,又叫一元运算符,其中有逻辑非运算符:!、按位取反运算符:~、自增自减运算符:++, --等

你可能感兴趣的:(java)