■ Java语言支持如下运算符:
①算术运算符:+,-,*,/,%,++,--
②赋值运算符:=
③关系运算符:>,<,>=,<=,==,!=,instanceof
④逻辑运算符:&&,||,!
⑤位运算符:&,|,^,~,>>,<<,>>>
⑥条件运算符:?,:
⑦扩展赋值运算符:+=,-=,*=,/=
■ 二元运算符
整数运算:
如果两个操作数有一个为Long类型,则结果也为Long;
没有Long时,结果为int。即使操作数全为short、byte,结果也为int。
浮点运算:
如果两个操作数有一个为double,则结果为double;
只有两个操作数均为float,结果才是float。
■ 取模运算;
其操作数可以为浮点数,一般使用整数。如:5.9%3.9=2.000000004
要点:
负数%负数=负数
负数%正数=负数
正数%负数=正数
■ 一元运算符(++,--):
int a = 3;
int b = a++; //执行完后,b=3。先给b赋值,再自增。
int c = ++a; //执行完后,c=5。先自增,再给b赋值。
注意:Java中的乘幂处理:
double b = Math.pow(3,2); //不能写成int a = 3^2; '^'是异或符号。
■ 布尔逻辑运算符:
逻辑与:&&和&。
逻辑或:||和|。
逻辑非:!。
逻辑与和逻辑非采用短路的方式。从左到右计算,如果确定值则不会再计算下去。
逻辑与只要有一个为false,则直接返回false。
逻辑或只要有一个为true,则直接返回true。
■ 位运算符:
~:取反。
&:按位与。
|:按位或。
^:按位异或。
<<:左移运算符。
>>:右移运算符。
>>>:无符号移位运算符。
■ 扩展运算符:
运算符 | 用法举例 | 等效的表达式 |
+= | 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)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。
■ 三目条件运算符:
①语法格式:x ? y : z
②其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算符的结果为表达式y的值,否则整个运算结果为表达式z的值。