Java运算符

运算符的分类

运算符的分类

算术运算符

运算符号
注意:

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

注意:

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

比较运算符
注意:

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

运算结果
逻辑运算符
注意:

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

注意:

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

运算规则
注意:

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

运算符的优先级

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值