9.JavaSE之运算符
Java语言支持如下运算符operator:优先级()
- 算数运算符 :+ ,- ,* ,/ ,% ,++ ,--
- 赋值运算符 :=
- 关系运算符 :> ,< ,>= ,<= ,== ,!= ,instanceof
- 逻辑运算符 :&&,||,!与或非
- 位运算符 :& ,| ,^ ,~ ,>>右移 ,<<左移 ,>>>
- 条件运算符 ?:
- 扩展赋值运算符 :+= ,-= ,*= ,/=
首先为了方便管理,建一个包,把之前的类放进去
![](https://img2018.cnblogs.com/i-beta/1697640/202001/1697640-20200121154033015-1155305890.png)
基本运算符:
1 package operator; 2 3 public class Demo01 { 4 public static void main(String[] args) { 5 6 //二元运算符:两个数 7 //Ctrl+D :复制当前行到下一行 8 int a = 10; 9 int b = 20; 10 int c = 25; 11 int d = 25; 12 13 System.out.println(a + b);//30 14 System.out.println(a - b);//-10 15 System.out.println(a * b);//200 16 System.out.println(a / (double) b);//0.5 17 18 } 19 }
1 package operator; 2 3 public class Demo02 { 4 public static void main(String[] args) { 5 long a = 123123123123L; 6 int b = 123; 7 short c = 10; 8 byte d = 8; 9 System.out.println(a + b + c + d);//如果有long类型操作数,那么结果为long类型 123123123264,double也一样 10 System.out.println(b + c + d);//int 141 11 System.out.println(c + d);//int 18 12 } 13 }
1 package operator; 2 3 public class Demo03 { 4 public static void main(String[] args) { 5 //关系运算符的返回结果:正确,错误 布尔值 6 //if 7 8 int a = 10; 9 int b = 20; 10 int c = 21; 11 12 //取余,模运算 13 System.out.println(c % a);// c/a 21/10 = 2...1 14 System.out.println(a > b);// false 15 System.out.println(a < b);// true 16 System.out.println(a == b);// false 17 System.out.println(a != b);// true 18 19 } 20 }
自增自减运算符、初识Math类:
1 package operator; 2 3 public class Demo04 { 4 public static void main(String[] args) { 5 //++ -- 自增,自减 一元运算符 6 int a = 3; 7 8 int b = a++; //执行完这行代码后,先给b赋值,再自增 9 //a = a + 1; 10 System.out.println(a);//4 11 //a = a + 1; 12 int c = ++a; //执行完这行代码前,先自增,再给c赋值 13 14 15 System.out.println(a);//5 16 System.out.println(b);//3 17 System.out.println(c);//5 18 19 //幂运算 2^3 2*2*2=8 ,很多运算,我们会使用一些工具类来操作! 20 double pow = Math.pow(2, 3);//8.0 21 System.out.println(pow); 22 } 23 }
逻辑运算符:
1 package operator; 2 3 //逻辑运算符 4 public class Demo05 { 5 public static void main(String[] args) { 6 //与(and) 或(or) 非(取反) 7 boolean a = true; 8 boolean b = false; 9 10 System.out.println("a && b:" + (a && b));//false 逻辑与运算:同真为真 11 System.out.println("a || b:" + (a || b));//true 逻辑或运算:有真就真 12 System.out.println("! (a && b):" + !(a && b));//true 13 14 //短路运算 15 int c = 5; 16 boolean d = (c < 4) && (c++ < 4); 17 System.out.println(d); //false 18 System.out.println(c); //5 19 20 } 21 }
位运算符:
1 package operator; 2 3 public class Demo06 { 4 public static void main(String[] args) { 5 /* 6 A = 0011 1100 7 B = 0000 1101 8 9 A&B = 0000 1100 同为1才为1 10 A|B = 0011 1101 有1为1 11 A^B = 0011 0001 异或 相同为0,不同为1 12 ~B = 1111 0010 按位取反 13 14 2*8 = 16 2*2*2*2 15 16 效率极高!直接跟底层,二进制打交道 17 <<左移 *2 18 >>右移 /2 19 */ 20 21 System.out.println(2<<3);//16 22 23 } 24 }
赋值运算符:
1 package operator; 2 3 public class Demo07 { 4 public static void main(String[] args) { 5 int a = 10; 6 int b = 20; 7 8 a += b;//a = a + b 9 System.out.println(a); //30 10 11 a -= b;//a = a - b 12 System.out.println(a); //10 13 14 //字符串连接符 + 有String 就为字符串 15 System.out.println(a + b); //30 16 System.out.println("" + a + b);//1020 17 System.out.println(a + b + "");//30 18 19 } 20 }
三元运算符及小结:
1 package operator; 2 3 public class Demo08 { 4 public static void main(String[] args) { 5 // x ? y : z 6 // 如果 x ==true ,则结果为y ,否则结果为z 7 8 int score = 80; 9 String type = score < 60 ? "不及格" : "及格"; 10 //if 11 System.out.println(type);//及格 12 13 } 14 }