Java基础学习:运算符2
-
逻辑运算符:
-
与:&&
-
或:||
-
非:!
-
代码案例:
public class Demo05 {
public static void main(String[] args) {
//逻辑运算符 :与 或 非
boolean a=true;
boolean b=false;
?
// ()优先执行
System.out.println("a && b:"+(a && b));//false
System.out.println("a || b:"+(a||b));//true
System.out.println("!(a && b):"+!(a && b));//true
?
?
}
}
代码案例2:
//短路运算
//举一个短路运算的例子
public class Demo05 {
public static void main(String[] args) {
//逻辑运算符 :与 或 非
boolean a=true;
boolean b=false;
?
// ()优先执行
System.out.println("a && b:"+(a && b));//false
System.out.println("a || b:"+(a||b));//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
?
}
}
-
位运算:
-
面试题:重点掌握
-
?
/**
* 位运算:是按位来计算的
*/
public class Demo06 {
public static void main(String[] args) {
/*
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 按位取反
?
?
//位运算:都是跟二进制相关的;好处:效率极高
//面试题:2*8=16 2*2*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
}
}
?