[11] 算数运算符


引用类型之间的比较大多是通过方法来进行的,所以大部分的运算符还是针对基本数据类型。按照功能划分,Java中的运算符可以分为四类:算术运算符、位运算符、比较运算符和逻辑运算符。

1、算术运算符

  • 单目:表示可以对一个变量进行操作
  • 双目:表示对两个变量进行操作
  • 三目:需要三个操作数进行运算
运算符类型    符号    含义示例
单目    +    取正    
单目    -    取负    
单目    ++    自增1    
单目    --    自减1    
双目    +相加
双目    -    相减
双目    *    相乘
双目    /    相除
双目    %    取余10%3 --> 1
三目    表达式 ? 如果为真的值 : 如果为假的值
10 > 3 ? 1 : 0 --> 1

注意:
  • 自加++和自减--的位置对返回给表达式的值是有影响的,加号在前表先取值再增加,加号在后表先增加再取值
  • 如 有x和y为1,那么 a = x++ 为1,而 b = ++y 则为2

2、位运算符

位运算符,顾名思义,相当于针对的是二进制下的运算。
符号    含义解释示例
&全1才1,有0则0
|有1则1,全0才0
~1变成0,0变成1
^异或不同为1,相同为0int a=15, b=2; a^b --> 0000 1101 --> 13
<<位左移左移位,低位处补0
>>位右移右移位,若正数则高位补0,负数则高位全补1int a=8,c; c=a>>2 --> 0000 1000 --> 0000 0010
>>>无符号右移无论正负数,高位均补0

注意:
  • 任何数异或它本身为0;任何数异或0是它本身

3、比较运算符

符号含义备注
==是否相等可以比较引用数据类型
!=是否不等可以比较引用数据类型
<是否小于
>是否大于
<=是否小于等于
>=是否大于等于

注意:
  • 比较运算符返回的是布尔值,true或false
  • 除了 == 和 != ,其他都只能比较基本数据类型
  • == 和 != 比较对象是比较的虚地址(即是否指向同一个引用)

4、逻辑运算符

与或非的运算和位运算符中的与或非使用类似,但是并非判断1和0,而是连接两个boolean值。
符号    含义解释示例
&全真才真,有假则假
&&    短路与

|有真则真,全假才假
||    短路或    

!真变假,假变真
^异或不同为真,相同为假true ^ false --> true; true ^ true --> false

注意:
  • &&和&结果是相同的,对短路与&&来说,只要左边表达式为false右边则不参与运算,直接返回false
  • 实际上多用&&和||


原文地址:https://www.cnblogs.com/deng-cc/p/7461850.html