基本运算符
- 算术运算符:+,-,*,/,%,++,--
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=,instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>
- 条件运算符:?
- 扩展赋值运算符:+=,-=,*=,/=
各运算符优先级:
运算符 | 结合性 |
---|---|
[ ] . ( ) (方法调用) | 从左向右 |
! ~ ++ -- +(一元运算) -(一元运算) | 从右向左 |
* / % | 从左向右 |
+ - | 从左向右 |
> >>> | 从左向右 |
< >= instanceof | 从左向右 |
== != | 从左向右 |
& | 从左向右 |
^ | 从左向右 |
| | 从左向右 |
&& | 从左向右 |
|| | 从左向右 |
?: | 从右向左 |
= | 从右向左 |
自增自减
n = i++; //表示先将i的值赋值给n,然后i再加1。等价于 n = i; i = i + 1;
n = ++i; //表示先将i加1,然后再将加1后的i赋值给n。等价于 i = i + 1; n = i;
//自减同理
与(&&)或(||)非(!)
public class Demo1 {
public static void main(String[] args) {
//与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b:" + (a&&b)); //逻辑与运算:变量都为真,结果才为真
System.out.println("a || b:" + (a||b)); //逻辑或运算:变量只要有一个为真,则结果为真
System.out.println("!(a && b):" + !(a&&b)); //逻辑非运算:结果为真,则变为假;结果为假,则变为真
//短路运算
int c = 5;
boolean d = (c < 4) && (c++ < 4); //c < 4 为false,后面就不执行了。
System.out.println(d);
System.out.println(c);
}
}
位运算
/*
与(&):有0则为0,全部为1才是1
或(|):有1则为1,全部为0才是0
异或(^):相同为0,不同为1
非(~):1变为0,0变为1
左移(<<):*2
右移(>>):/2
----------------------------
A = 0101 0011
B = 0100 1010
----------------------------
A&B = 0100 0010
A|B = 0101 1011
A^B = 0001 1001
~B = 1011 0101
*/
其他
a += b; //a = a + b
a -= b; //a = a - b
//字符串连接符 + ,String 第一个字符串后面的全部自动转化为字符串进行拼接,之前的仍按原运算符计算。
int n = 10;
int m = 20;
System.out.println("hello" + n + m); //hello1020
System.out.println(n + m + "hello"); //30hello
//三元运算符
/*
x ? y : z
如果 x == true,则结果为 y,否则结果为 z
*/
int score = 99;
String type = score < 60 ? "不及格" : "及格";
System.out.println(type); //结果为 及格 若将score=99改为score=59,则结果为 不及格。
标签:System,运算符,&&,println,左向右,out
From: https://www.cnblogs.com/ibuprofen/p/17021781.html