Java基础学习:运算符2


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
  }
}
?