Java中的运算符

算数运算符

    +   -    *    /    %(取余数)

               + 号 两边如果有字符串,就不再是求和,而是字符串的连接符号;

               % 号 结果的符号只与被模数有关;经常使用 % 来获取数值各个位上的值;

一元运算符

       ++    --

               自加和自减运算符:如果运算符在前,先进行自加自减运算,再进行赋值或运算;

              如果运算符在后,先进行赋值或运算,再进行自加自减运算;

赋值运算符

     =    +=    -=    *=    /=    %=

                 += 相当于计算出结果后,又进行了一次强制类型转换;

关系运算符

     ==    !=    <    >    <=    >=

      输出 true  false两种结果;

      == 两边是引用数据类型时 判断 等号 两边的内存地址是否相等;

逻辑运算符

    &    |

               & 逻辑与 两边的表达式只要有一个为false,整体结果为false;

        只有两边表达式都为true,整体结果为true;

               true & true = true

               true & false = false

               false & true = false

               false & false = false

               | 逻辑或 两边的表达式只要有一个为true,整体结果为true;

                               只有两边表达式都为false,整体结果为false;

                 true | true = true

                 true | false = true

             false | true = true

                 false | false = false

              

               !逻辑非

                 !true = false;

                 !false = true;

               &&    ||  也称为逻辑与、逻辑或 ,有短路的作用;

               &&  如果有表达式的结果为 false , 后面的表达式将不会被执行,整体结果为false;

               ||    如果有表达式的结果为 true , 后面的表达式将不会被执行,整体结果为true;

位运算符

    & 按位与  | 按位或   ^ 按位异或   ~ 取反 ;<< 按位左移  >> 按位右移  >>> 无符号右移

               &

               1 & 0 = 0

               1 & 1 = 1

               0 & 1 = 0

               0 & 0 = 0

               |

               1 | 0 = 1

               1 | 1 = 1

               0 | 1 = 1

               0 | 0 = 0

               ^

               1 ^ 0 = 1

               1 ^ 1 = 0  规律:1、两边相同时结果为 0 ,两边不同时结果为 1 ;

               0 ^ 1 = 1               2、一个数异或另一个数两次,结果是其本身;(加密和解密)

               0 ^ 0 = 0 

               ~            0000-0000 0000-0000 0000-0000 0001-1101     29

                             1111-1111 1111-1111 1111-1111 1110-0010    -30

                             1111-1111 1111-1111 1111-1111 1110-0011    -29

               << 按位左移 左移几位 就相当于将这个数与2的几次幂相乘;

               >> 按位右移 补位数字与符号位数字相同 右移几位 就相当于将这个数与2的几次幂相除;

               >>> 按位无符号右移 无论正负 都是用0 来补位;

三元运算符

               (条件表达式)?表达式1:表达式2;如果条件表达式为true,整体结果为表达式1的值;如为false,整体结果为表达式2的值;

Java运算符优先级

 序列号

符号

名称

结合性(与操作数)

目数

说明

1

.

从左到右

双目

 

( )

圆括号

从左到右

 

 

[ ]

方括号

从左到右

 

 

2

+

正号

从右到左

单目

 

-

负号

从右到左

单目

 

++

自增

从右到左

单目

前缀增,后缀增

- -

自减

从右到左

前缀减,后缀减

~

按位非/取补运算

从右到左

单目

 

逻辑非

从右到左

单目

!”不可以与“=”联用

3

*

从左到右

双目

 

/

从左到右

双目

整数除法:取商的整数部分,小数部分去掉,不四舍五入

%

取余

从左到右

双目

 

4

+

从左到右

双目

 

-

从左到右

双目

 

5

<< 

左移位运算符

从左到右

双目

 

>> 

带符号右移位运算符

从左到右

双目

 

>>> 

无符号右移

从左到右

双目

 

6

小于

从左到右

双目

关系运算符“大于”说明

<=

小于或等于

从左到右

双目

 

大于

从左到右

双目

 

>=

大于或等于

从左到右

双目

 

instanceof

确定某对象是否属于指定的类

从左到右

双目

 

7

==

等于

从左到右

双目

关系运算符“==”说明

!=

不等于

从左到右

双目

 

8

&

按位与

从左到右

双目

 

9

|

按位或

从左到右

双目

 

10

^

按位异或

从左到右

双目

 

11

&&

短路与

从左到右

双目

 

12

||

短路或

从左到右

双目

 

13

? :

条件运算符

从右到左

三目

 

14

=

赋值运算符

从右到左

双目

 

+=

混合赋值运算符

 

-=

 

*=

 

/=

 

%=

 

&=

 

|=

 

^=

 

<<=

 

>>=

 

>>>=

 

原文地址:https://www.cnblogs.com/coffeerun/p/5718167.html