Java 拾遗补阙 ----- 运算符

一、分类

Java的运算符,分为四类:

算数运算符关系运算符逻辑运算符位运算符


算数运算符(9): +  -  *  /  %  ++  --

关系运算符(6): ==  !=  >  >=  <  <=

逻辑运算符(6): &&  ||  !  ^  &  |

位运算符(7): &  |  ~  ^  >>  <<  >>>


二、逻辑运算符

1)、逻辑运算符要求操作数的数据类型为逻辑型,其运算结果也是逻辑型值。


2)、逻辑运算的数据和逻辑运算符的运算结果是boolean类型。


     3)、逻辑与'&&'逻辑或'||'逻辑非'!'逻辑异或'^'逻辑与'&'逻辑或'|'


     4)、逻辑运算符的真值表:

                        Java 拾遗补阙 ----- 运算符

5)、对第四条真值表的解释:


A和B是逻辑运算的两个逻辑变量;

两种逻辑与(&&和&)的运算规则基本相同,两种逻辑或(||和|)的运算规则也基本相同。
&和|运算是把逻辑表达式全部计算完,而&&和||运算具有短路计算功能。
对于&来说,如果左侧条件为false,也会计算右侧条件的值,而对于&&来说,如果左侧的条件为false,则不计算右侧的条件,这种现象被称作短路现象。
所谓短路计算,是指系统从左至右进行逻辑表达式的计算,一旦出现计算结果已经确定的情况,则计算过程即被终止。
对于&&运算来说,只要运算符左端的值为false,则因无论运算符右端的值为true或为false,其最终结果都为false。
所以,系统一旦判断出&&运算符左端的值为false,则系统将终止其后的计算过程;
对于 || 运算来说,只要运算符左端的值为true,则因无论运算符右端的值为true或为false,其最终结果都为true。
所以,系统一旦判断出|| 运算符左端的值为true,则系统将终止其后的计算过程。 
注:异或相同为false,相反则为true。
利用短路现象:

在程序设计时使用&&和||运算符,不建议使用&和|运算符。 

三、位运算符


位运算是以二进制位为单位进行的运算,其操作数和运算结果都是整型值。 
位与'&'位或'|'位非'~'位异或'^'右移'>>'左移'<<'0填充的右移'>>>' 
位运算的位与'&',位或'|',位非'~',位异或'^'与逻辑运算的相应操作的真值表完全相同,其差别只是位运算操作的操作数和运算结果都是二进制整数,而逻辑运算相应操作的操作数和运算结果都是逻辑值boolean型。 
 
下边为位&运算:
    int a = 15;    //x等于二进制数的00001111
    int b = 6;     //y等于二进制数的00000110
    int c = x&y    //z等于二进制数的00000110
结果为:二进制数的00000110
1.与运算符
与运算符用符号“&”表示,其使用规律如下:
两个操作数中位都为1,结果才为1,否则结果为0


2.或运算符
或运算符用符号“|”表示,其运算规律如下:
两个位只要有一个为1,那么结果就是1,否则就为0,


3.非运算符
非运算符用符号“~”表示,其运算规律如下:

如果位为0,结果是1,如果位为1,结果是0


4.异或运算符
异或运算符是用符号“^”表示的,其运算规律是:
两个操作数的位中,相同则结果为0,不同则结果为1。


四、云算法优先级

运算符优先级表

Java 拾遗补阙 ----- 运算符

优先级自上而下,级别由高到低。