Java语言支持如下运算符:

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

 public class Demo01 {
     public static void main(String[] args) {
         //二元运算符
         int a = 10;
         int b = 20;
         int c = 30;
         int d = 40;
         int e = 3;
 
         System.out.println(a+b);
         System.out.println(a-b);
         System.out.println(a*b);
         System.out.println(a/(double)b);
         System.out.println(a%e);//取余,模运算
    }
 
 }
 public class Demo02 {
     public static void main(String[] args) {
 
         long a = 123123123123123L;
         int b = 123;
         short c = 10;
         byte d = 8;
 
         System.out.println(a+b+c+d);//long
         System.out.println(b+c+d);//int
         System.out.println(c+d);//int
         /*运算规则:先将运算级统一为该运算中最高级的数据类型后再运算
         无long类型时,输出默认为int
         低-------------------------------------------------------->高
         byte,short,char->int->long->float->double
          */
 
    }
 }
 public class Demo04 {
     public static void main(String[] args) {
 
         //++,--   自增,自减   一元运算符
 
         int a = 3;
 
         int b = a++;   //执行完这行代码后,先给b赋值,再自增
         //a++   a = a+1;
 
         System.out.println(a);
 
         //++a   a = a+1;
         int c = ++a; //执行完这行代码前,先自增,再给c赋值
 
         System.out.println(a);
         System.out.println(b);
         System.out.println(c);
 
         //幂运算 2^3=8
 
         double pow = Math.pow(2,3);
 
         System.out.println(pow);
 
 
    }
 }
  • 赋值运算符:=

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

 public class Demo03 {
     public static void main(String[] args) {
 
         //关系运算符返回的结果:正确,错误   布尔值
 
         int a = 10;
         int b = 20;
 
         System.out.println(a>b);
         System.out.println(a<b);
         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));
         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);//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 = 1100 1110   相同为1,不同为0
         ~B   = 1111 0010   取反
 
          */
         /*
         2*8怎么运算最快 2*2*2*2=16
         << 左移,相当于 *2
         >> 右移,相当于 /2
 
         0000 0001 1
         0000 0010 2
         0000 1000 8
         0001 0000 16
 
          */
 
         System.out.println(2<<3);
    }
 }
  • 条件运算符:” ? !“

 public class Demo08 {
     public static void main(String[] args) {
 
         //三元运算符
         //x?y:z
         //如果x==true,则结果为y,否则为z
 
         int score = 80;
         String type = score < 60 ? "不及格":"及格";
 
         System.out.println(type);
 
    }
 }
  • 扩展赋值运算符:+=,-=,*=,/=

 public class Demo07 {
     public static void main(String[] args) {
 
         int a = 10;
         int b = 20;
 
         a+=b;//a=a+b
 
         System.out.println(a);
 
         a-=b;//a=a-b
 
         System.out.println(a);
 
         //字符串连接符
         System.out.println(a+b);
         System.out.println(""+a+b);//会连接a,b
         System.out.println(a+b+"");//会先计算a+b
 
 
    }
 }
  • Java运算符优先级列表

优先级 运算符 简介 结合性
1 [ ].( ) 方法调用,属性获取 从左向右
2 !、~、 ++、 -- 一元运算符 从右向左
3 * 、/ 、% 乘、除、取模(余数) 从左向右
4 + 、 - 加减法 从左向右
5 <<、 >>、 >>> 左位移、右位移、无符号右移 从左向右
6 < 、<= 、>、 >=、 instanceof 小于、小于等于、大于、大于等于, 对象类型判断是否属于同类型 从左向右
7 == 、!= 2个值是否相等,2个值是否不等于。 下面有详细的解释 从左向右
8 & 按位与 从左向右
9 ^ 按位异或 从左向右
10 | 按位或 从左向右
11 && 短路与 从左向右
12 || 短路或 从左向右
13 ?: 条件运算符 从右向左
14 =、 += 、-= 、*= 、/=、 %=、 &=、 |=、 ^=、 <、<= 、>、>= 、>>= 混合赋值运算符 从右向左