您的位置:首页 > 编程语言 > Java开发

Java_13_运算符_二元运算符_取模运算_一元运算符_布尔逻辑表达符_位运算符_扩展运算符_三目条件运算符_运算符优先级

2018-03-06 19:08 951 查看
Java语言支持如下运算符:
算术运算符:+,-,*,/,%,++,--
赋值运算符:=
关系运算符:>,<,>=,<=,==,!=,instanceof
逻辑运算符:&&,||,!
位运算符:&,|,^,~,>>,<<,>>>> 了解即可
条件运算符:?,:
扩展赋值运算符:+=,-=,*=,/=

二元运算符
整数运算:
如果两个操作数有一个为long,则结果也为long,没有long时,结果为int。即使操作数全为shot,byte,结果也是int
浮点运算:
如果两个操作数有一个为double,则结果为double。
只有两个操作数都是float,则结果才为float。

取模运算
其操作数可以为浮点数,一般使用整数。如:5.9%3.9=2.0000000000000004
要点:

负数%负数=负数;System.out.println(-5.9%-3.9); //输出:-2.0000000000000004
负数%正数=负数;System.out.println(-5.9%3.9); //输出:-2.0000000000000004
正数%负数=正数;System.out.println(5.9%-3.9); //输出:2.0000000000000004

一元运算符(++,--)
int a=3;
int b=a++; //执行完后,b=3,a=4。先给b赋值,a再自增。
int c=++a;//执行完后,c=5,a=5。先自增,在给b赋值。
注意:Java中的乘幂处理:
int a=3^2; //Java中不能这么处理,^是异或符号。
double b=Math.pow(3,2);
Math类提供了很多科学和工程计算需要的方法和常数。

布尔逻辑表达符(必须是布尔值)
逻辑与:&&和&,逻辑或:||和|,逻辑非:!。(与,或、为二元运算符)
逻辑与和逻辑或采用短路ude方式。从左到右计算,如果确定值则不会在计算下去。
逻辑与只要有一个为false,则直接返回false。
逻辑或只要有一个为true,则直接返回true。
boolean c=1>2&&2>(3/0); //短路计算方式,因此2>(3/0)并没有运算。
“&”“|”不采用短路计算,就是说即使是前面判断完成,后面的判断依然运行!!!

位运算符
~取反 &按位与 |按位或 ^按位异或
<<:左移运算符,>>:右移运算符,>>>>:无符号移位运算符。
右移一位相当于除2取商。
左移一位相当于乘2。
int a=3*2*2;int b=3<<2; //相当于3*2*2int c=12/2/2;int d=12>>2; //相当于3/2/2
输出: a=12,b=12,c=3,d=3位运算相关常识

扩展运算符

运算符
用法举例
等效的表达式
+=
    a += b
    a = a+b
-=
    a -= b
    a = a-b
*=
    a *= b
    a = a*b
/=
    a /= b
    a = a/b
%=
    a %= b
    a = a%b
字符串连接符
“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后在进行连接。
int c=12;
System.out.println("c="+c); //输出c=12
字符串相连:加号两边只要有一个为字符串,则整个结果为字符串。

三目条件运算符(又称三元运算符)
三木条件运算符,语法格式:
X?Y:Z
其中X为boolean类型表达式,先计算X的值,若为true,则整个三目运算的结果为表达式Y的值,否则整个运算结果为表达式Z的值。
例如:
int score=80;
int x=-100;
String type=score<60? "不及格":"及格";

运算符优先级的问题

R to L
.   ( )   { }   ;   ,
++ --   ~ ! (data type)
L to R
* / %
L to R
+ -
L to R
<< >> >>>
L to R
<  >  <=  >=  instanceof
L to R
== !=
L to R
&
L to R
^
L to R
|
L to R
&&
L to R
||
R to L
? :
R to L
 =   *=   /=   %= 
 +=   -=   <<=   >>=  
>>>=   &=   ^=   |=
大家不要去刻意的记住它,表达式里面优先使用小括号来组织!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: