逻辑运算符
与(and) 或(or) 非(取反)
//与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b: "+(a&&b)); //a && b: false 逻辑与运算:两个都为真。结果才是真
System.out.println("a || b: "+(a||b)); //a || b: true 逻辑或运算:两个变量一个为真,则结果才为true
System.out.println("! (a && b): "+!(a&&b)); //! (a && b): true //如果是真,则变为假,如果是假则变为真
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d); //fasle
System.out.println(c); //5
位运算
/*
A = 0011 1100
B = 0000 1101
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B = 1111 0010
2*8 = 16 2*2*2*2
<<
>>
效率极高
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
....
0000 1000 8
....
0001 0000 16
*/
System.out.println(2<<3); //16
其他
int a = 10;
int b =20;
a +=b; //a = a+b
System.out.println(a);//30
a -=b; //a = a-b
System.out.println(a);//10
//字符串连接符 + , String, 前面出现,则a,b变为String 从左到右顺序解析
System.out.println(a+b);//30
System.out.println(""+a+b);//1020
System.out.println(a+b+"");//30
三元运算符
//x ? y : z
//如果下 x == true, 则结果为有, 否则结果为z
int score = 80;
String type1 = score < 60? "不及格":"及格";
System.out.println(type1); //及格
score = 59;
String type2 = score < 60? "不及格":"及格";
System.out.println(type2); //不及格