逻辑运算符、位运算
```java
package operator;
//逻辑运算符
public class Demo05 {
public static void main(String[] args) {
//与(and &&) 或(or ||) 非(取反 !)
boolean a = true;
boolean b = false;
System.out.println("a && b :"+(b&&a)); //逻辑与运算:两个变量都为真,结果才为真
System.out.println("a || b :"+(a||b)); //逻辑或运算:两个变量只要有一个为真,结果就为真
System.out.println("!(a && b):"+!(a&&b)); //非:如果为真,则变为假;如果为假,就变为真
//短路运算 逻辑与运算,前一个为假,结果就直接为假,不会再运算后面的
int c = 5;
boolean d =(c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
}
}
```
```java
package operator;
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
//位运算
public class Demo06 {
/*
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=16
效率极高
//左移
<< *2
//右移
>> /2
*/
/*
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0001 0000 8
*/
public static void main(String[] args) {
System.out.println(2<<3); //16
}
}
```