Java语言中运算符号优先级

一、运算符号优先级

Java语言中运算符号优先级_第1张图片

二、按功能区分运算符

算术运算符:+,-,*,/,%,++,--

赋值运算符:=

扩展后的赋值运算符:+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=,>>>=

关系比较运算符:>,>=,<,<=,==

逻辑运算符:&&,&,||,|,!,^

位运算符:&,|,~,^,<<,>>,>>>

其他运算符(三目运算符):? :

1、算术运算符:

(1)+(加法)

int a = 3;

int b = 2;

in sum = a+b;  /sum的值为5

(2)-(加法)

int a = 3;

int b = 2;

int sub = a-b;  //sub的值为1

(3)*(乘法)

int a = 3;

int b = 2;

int multiply = a*b;  //multiply 的值为6

(4)/(除法--取整)

int a = 8;

int b = 4;

int div = a / b;  //div的值为2

(5)%(求取--取模)

int a = 8;

int b = 5;

int div = a % b;   //div的值为3

(6)++(自增)

运算符既可以放在操作数的左边也可以放在操作数的右边。

如果把++放在左边,则先把操作数加1,然后再运算;

自加运算符放在操作数左边的代码:

int a = 2;

int b = ++a + 3; //a先自加,然后再执行算术运算

System.out.println(a);  //a的值为3

System.out.println(b);  //b 的值为6

如果把++放在右边,则先运算,然后再把操作数加1。

自加运算符放在操作数右边的代码:

int a = 2;

int b = a++ + 3; //a先执行算术运算,再自加

System.out.println(a);  //a的值为3

System.out.println(b);   //b 的值为5

(7)--(自减)(与自增相似)

也可以查看

a++与++a的区别

2、赋值运算符:=(用来为变量指定变量值;)

扩展后的赋值运算符:+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=,>>>=

(1)+=:对于a+=b,即对应于a=a+b。

(2) -=:对于a-=b,即对应于a=a-b。

(3) *=:对于a*=b,即对应于a=a*b。

(4) /=:对于a/=b,即对应于a=a/b。

(5) %=:对于a%=b,即对应于a=a%b。

(6) &=:对于a&=b,即对应于a=a&b。

(7) |=:对于a|=b,即对应于a=a|b。

(8) ^=:对于a^=b,即对应于a=a^b。

(9) <<=:对于a<<=b,即对应于a=a<

(10) >>=:对于a>>=b,即对应于a=a>>b。

(11)>>>=:对于a>>>=b,即对应于a=a>>>b。

3、关系比较运算符:

>(大于),>=(大于等于),<(小于),<=(小于等于),==(等于)

4、逻辑运算符:

(1)&&(与):两个操作全为true,才返回true,反之返回false;

(2)&(不短路与):作用同&&,但不会短路;

(3)||(或):两个操作只要有一个为true,就返回true,全为false才返回false;

(4)|(不短路或):作用同 || ,但不会短路;

(5)!(非):即取反,若操作数为true,则返回false,反之;

(6)^(异或):两个操作数不同时返回true,相同时返回false;

5、位运算符:(转换为二进制进行计算)

(1)&(按位与)

按位与 规则:(全 1 为 1)

1 & 1 =1

1 & 0 =0

0 & 1 =0

0 & 0=0

(2)|(按位或)

按位或 规则:(有 1 为 1)

1 | 1 =1

1 | 0 =1

0 | 1 =1

0 | 0 =0

(3)~(按位非)

非运算规则:(将操作数的每一位(包括符号位)全部取反。)

~ 1 = 0

~ 0 = 1

(4)^(按位异或)

按位异或 规则:(相同为 0 ;相异为 1 )

(5)<<(左移运算符)

System.out.println (5<<2); //输出20

左移 2 位,也就相当于:5*2*2=20;

或是将数字转换为二进制,即5====》101

左移两位:101=====》101 00 

二进制转十进制:10100  ====》20

(6)>>(右移运算符)

System.out.println (16>>3); //输出2

右移 3 位,就相当于:16 / 2 / 2 /2 =2; 

与左移相似:

将数字转换为二进制,即16====》1000 0

右移三位:1000 0=====》10 

二进制转十进制:10  ====》2

System.out.println (-8>>1); //输出-4

(7)>>>(无符号右移运算符)

>>> 和 >> 的区别在于:
>>> 负数高位补 0;
>> 负数高位补1;

Java语言中运算符号优先级_第2张图片

 

6、其他运算符(三目运算符):? :

语法格式:(expression) ? if-true-statement : if-false-statement

如:String str = 6>4 ? "6大于4" : "6不大于4" ;

System.out.println(str); //输出6大于4

你可能感兴趣的:(JAVA(基础,EE),java,开发语言,算法)