运算符分类:
- 算数运算符:
运算符 | 符号 |
---|---|
一元运算符 | + ,-,*,/,% |
二元运算符 | + +,– |
- 其他运算符
运算符 | 符号 |
---|---|
赋值运算符 | = |
扩展运算符 | +=,-=, *=, /= |
关系运算符 | < > <= >= == != inst anceof |
逻辑运算符 | && // ! ^ |
位运算符 | & / ^ ~ << >> >>> |
条件运算符 | ? : |
字符串运算符 | + |
二元运算符规则:
整数运算:
- 如果两个操作有一个为long,那么结果为long
- 没有long时结果为int 即使操作数全为short,byte ,结果也为int
浮点运算:
- 如果两个操作数有一个为doudle则结果为doudle
-
只有两个操作符都是float 结果才为float
取模运算:
1.其操作数可以为浮点数,一般使用整数,结果为“余数“。”余数“符号和左边操作符数相同。
如:7%3=1 -7%3=-1 7%-3=1
逻辑运算符:
运算符 | 说明 |
---|---|
与 & | 两个结果为true结果才为true否则为false |
或 \ | 有一个为true 结果为true |
短路与 && | 只要有一个为false 直接返回flase |
短路或 // | 只有一个为true结果才为true |
非 ! | 取反 |
异或 ^ | 相同为flase 不同为true |
短路特点:
&& 短路与 | 符号左边是false,右边不再运算 |
短路或 // | 符号左边是true,右边不再运算 |
三元运算符:
- 格式:x?y:z #判断x是false 或 true 为true返回y 否则返回 z
E:
public class Main {
public static void main(String[] args) {
// 格式:x?y:z #判断x是false 或 true 为true返回y 否则返回 z
int a,b,c;
a = 1 ;
b = 2;
c = a==b? a:b;
System.out.println(c);
}
}
运行结果:2
运算符优先级:
优先级运算符结合性
优先级 | 符号 |
---|---|
1 | ()、[]、{}从左向右 |
2 | !、+、-、~、++、–从右向左 |
3 | *、/、%从左向右 |
4 | +、-从左向右 |
5 | «、»、>>>从左向右 |
6 | <、<=、>、>=、instanceof从左向右 |
7 | ==、!=从左向右 |
8 | &从左向右 |
9 | ^从左向右 |
10 | |
11 | &&从左向右 |
12 | |
13 | ?:从右向左 |
14 | =、+=、-=、*=、/=、&=、 |
注意:算数运算符中++,-- 属于一元运算符,该类运算符只需要一个操作数。博客里的 / 是 | l