运算符

运算符是一种特殊符号,用以表示数据的运算、赋值和比较,一般由一至三个字符组成。

运算符共分以下几种:

Ø 算术运算符

Ø 赋值运算符

Ø 比较运算符

Ø 逻辑运算符

Ø 位运算符

 

算数运算符:

java 效率 比较 运算符 java中比较运算符_比较运算符


赋值运算符

java 效率 比较 运算符 java中比较运算符_运算符_02


比较运算符

运算符

含义

示例

==

等于

a==b

!=

不等于

a!=b

>

大于

a>b

<

小于

a<b

>=

大于或等于

a>=b

<=

小于或等于

a<=b

instanceof

检查是否是该类的一个对象

“aa”instanceof String

注1:比较运算符的结果都是boolean型,也就是true/false。

注2:比较运算符“==”不能误写成“=” ,切记!切记!


逻辑运算符

运算符

含义

示例

&

逻辑与

A & B

|

逻辑或

A | B

^

逻辑异或

A ^ B

!

逻辑反

 ! A

||

短路或

A || B

&&

短路与

A && B

“&”和“&&”的区别在于:

“&”:那么无论任何情况,“&”两边的表达式都会参与计算

“&&”:当“&&”的左边为false,则将不会计算其右边的表达式。

“|”和“||”的区别与“&”和“&&”的区别一样。

 

位运算符

运算符

含义

示例

按位非(NOT)/取反 

b = ~a 

按位与(AND) 

c = a & b 

按位或(OR) 

c = a | b 

按位异或(XOR) 

c = a ^ b 

>> 

右移 

b = a >> 2 

>>> 

无符号右移,左边空出的位以0填充 

b = a >>> 2 

<< 

左移 

b = a << 1 

位运算规则:

1、java使用补码来表示二进制数,在补码表示中,最高位为符号位,正数符号位为0,负数为1。  

例:

 

+42 的补码为:00101010
   -42 的补码为:11010110(11010101+0000001)

负数取补码的规则:

① 取该数绝对值的补码

② 对该补码按位取反

③ 然后对整个数加1

2、不同类型的进行位运算,低精度类型的数据要先转成高精度的,缺的左位按位填满,正数则填0,负数则填1

例:byte a = 1;=>0000,0001
      int b = 10;=>0000,0000,0000,0000,0000,0000,0000,1010
         a =1;   =>0000,0000,0000,0000,0000,0000,0000,0001    
  a&b =0000; =>0000,0000,0000,0000,0000,0000,0000,0000

3、移位运算

 <<:将一个数的各二进制位全部左移若干位,右边补0;

 >>:将一个数的各二进制位全部右移若干位,最高位则移入原来最高位的值(正数补0,负数补1)。

 >>>:将一个数的各二进制位全部右移若干位,最高位补0;

 

三目运算符:?:

(expression) ?

三目运算符的规则是先对逻辑表达式expression求值,如果逻辑表达式返回true,则返回第二个操作数的值,如果表达式返回false,则返回第三个操作数的值。

 

运算符优先级

java 效率 比较 运算符 java中比较运算符_比较运算符_03

从上往下优先级是由高到低。