Fork me on GitHub

运算符

Java语言支持如下运算符:

  • 算术运算符:+ , - ,* ,/ ,% , ++ , --

  • 赋值运算符:=

  • 关系运算符:> , < , >= , <= , == , != instanceof

  • 逻辑运算符:&& , || , !

  • 位运算符:& , | ,^ , ~ , >> , << , >>> (了解!!!)

  • 条件运算符: ?:

  • 扩展赋值运算符: += , -= , *= , /=

算术运算符

public class Demo01 {

   public static void main(String[] args) {
       // 二元运算符
       int a = 10;
       int b = 20;
       int c = 15;
       int d = 10;

       System.out.println(a+b);
       System.out.println(a-b);
       System.out.println(a*b);
       System.out.println(a/b);//变量类型都为int,输出类型也为int,导致数据丢失
       System.out.println((double)a/b);
  }

}
public class Demo02 {
   public static void main(String[] args) {
       long a = 123456789L;
       int b = 123;
       short c = 10;
       byte d = 8;

       // 变量类型中有long类型,则输出结果为long,
       // 变量类型中没有long类型,则输入结果转化为int类型
       System.out.println(a+b+c+d); //输出结果为long类型
       System.out.println(b+c+d);//输出结果为int
       System.out.println(c+d);//输出结果为int

  }
}
public class Demo04 {

   public static void main(String[] args) {
       // ++ -- 自增 ,自减 一元运算符
       int a = 3;

       int b = a++;  // a = a + 1 先给b赋值,再自增
       int c = ++a;  //           先给a自增,在赋值给b

       System.out.println(a);
       System.out.println(b);
       System.out.println(c);

       //幂运算
       double pow = Math.pow(3,2);
       System.out.println(pow);

  }
}

 

关系运算符

public class Demo03 {
   //关系运算符返回的结果: 正确 , 错误   布尔值
   public static void main(String[] args) {

       int a = 10;
       int b = 20;
       int c = 21;

       //取余 模运算
       System.out.println(c%a);

       System.out.println(a>b);
       System.out.println(a<b);
       System.out.println(a==b);
       System.out.println(a!=b);
  }
   
}

 

逻辑运算符

public class Demo05 {

   public static void main(String[] args) {
       // 与   或   非
       boolean a = true;
       boolean b = false;

       System.out.println("a && b"+(a&&b));//与运算:两个变量都为真,结果才为true
       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);
  }

}

 

位运算符

public class Demo06 {

   public static void main(String[] args) {
       /*
       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
       效率极高
       <<   *2   一个数左移X位 ,则乘以 X个2
       >>   /2   一个数右移X位 ,则除以 X个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
  }
}

扩展赋值运算符

public class Demo07 {

   public static void main(String[] args) {
       int a = 10 ;
       int b = 20 ;

       a+=b; //a = a + b
       a-=b; //a = a - b

       System.out.println(a);

       //字符串连接符   + , String   面试题
       System.out.println(""+a+b);//10 20
       System.out.println(a+b+"");//30
  }
}

条件运算符

public class Demo08 {

   public static void main(String[] args) {
       // x ? y : z
       // 如果x==true,则结果为y,否则结果为z
       int score = 80;
       String tpye = score < 60 ? "不及格" : "及格"; // 必须掌握
       // if
       System.out.println(tpye);

  }
}
 
posted @ 2022-06-03 11:22  944964684  阅读(62)  评论(0)    收藏  举报
1