逻辑运算
//与and 或or 非取反
boolean a =true;
boolean b =false;
System.out.println("a&&b: "+(a&&b)); //false 逻辑与运算:两个变量都为真 结果才为true
System.out.println("a||b: "+(a||b)); //true 逻辑或运算:两个变量有一个为真 结果才为true
System.out.println("!(a&&b): "+(!(a&&b))); //true 如果是真 则变为假 如果是假则变为真
短路运算
int c=5;
boolean d=(c<4)&&(c++<4);
System.out.println(d); //false
System.out.println(c); //5
位运算
A = 0011 1100
B = 0000 1101
A&B 0000 1100 与运算 两个都是1 才为1 其余都是0
A|B 0011 1101 或运算 两个都是0 结果为0 其余为1
A^B 0011 0001 取反 两个相同为0 不同为1
~B 1111 0010 取反 与B相反
2*8=16 怎样最快
效率高
<< 左移相当于*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就会使用字符串连接
System.out.println(a+b); //30
System.out.println(""+a+b); //1020
System.out.println(a+b+""); //30
条件运算
// x?y:z
//如果x==true 则结果为y 否则结果为z
int score=50;
String type=score<60 ?"不及格":"及格";
System.out.println(type); //不及格