JavaSE:3、运算符

1、赋值运算符

从右往左运算,左边是可赋值的目标,返回计算结果
public class Main {
    public static  void main(String [] argv)
    {
        int a=10;
        int b=a=100;
        System.out.println(a);  //输出100
        System.out.println(b);  //输出100
    }
}

2、算术运算符

+    -     *    /     %

(1)加法

支持字符串拼接,变量常量相加,隐式类型转换。类型无法隐式转换需要强制类型转换
public class Main {
    public static  void main(String [] argv)
    {
        int a=10;
        int b=a+100;
        String s1="aaa";
        String s2="bbb"+s1+a;   //字符串可拼接
        // short c=b+a;      //ERROR  类型不可转换
        long d=b+a;   //True  可隐式转换
        short e=(short)(b+a);    //True  强制转换
        System.out.println(e);  //输出  120
        System.out.println(s2);  //输出  bbbaaa10
    }
}

(2)减法

 支持变量常量相减,隐式类型转换,不可转换需强制类型转换
public class Main {
    public static  void main(String [] argv)
    {
        int a=1000;
        int b=a-100;

        // short c=b-a;      //ERROR  类型不可转换
        long d=b-a;   //True  可隐式转换
        short e=(short)(b-a);    //True  强制转换
        System.out.println(e);  //输出 -100
        System.out.println(d);  //输出 -100
    }
}

(3)乘法

支持变量常量相乘,隐式类型转换,不可转换需强制类型转换
public class Main {
    public static  void main(String [] argv)
    {
        int a=10;
        int b=a*100;

        // short c=b*a;      //ERROR  类型不可转换
        long d=b*a;   //True  可隐式转换
        short e=(short)(b*a);    //True  强制转换
        System.out.println(e);  //输出 10000
        System.out.println(d);  //输出 10000
    }
}

(4)除法

整数类型向下取整,支持变量常量相除,隐式类型转换,不可转换需强制类型转换
public class Main {
    public static  void main(String [] argv)
    {
        int a=1000;
        int b=a/9;
        double c=30;
        double d=7;
         //short c=b/a;      //ERROR  类型不可转换
        long f=b/a;   //True  可隐式转换
        short e=(short)(b/a);    //True  强制转换
        System.out.println(f);  //输出 0  向下取整
        System.out.println(e);  //输出 0
        System.out.println(c/d);  //输出4.285714285714286
    }
}

(5)取模

支持变量常量取模,隐式类型转换,不可转换需强制类型转换
public class Main {
    public static  void main(String [] argv)
    {
        int a=1000;
        int b=a%9;
        double c=30.5;
        double d=7.5;
         //short c=b;      //ERROR  类型不可转换
        long f=b;   //True  可隐式转换
        short e=(short)(b);    //True  强制转换
        System.out.println(f);  //输出 1
        System.out.println(e);  //输出 1
        System.out.println(c%d);  //输出0.5
    }
}

3、括号运算符

可隐式类型转换,转换不了需强制类型转换
public class Main {
    public static  void main(String [] argv)
    {
        int a=10;
        int b=(a+5)*7;
        int c=a+5*7;
        int d=(b+3*(a+1));
        System.out.println(b);  //输出 105
        System.out.println(c);  //输出 45
        System.out.println(d);  //输出 138
    }
}

4、自增自减运算符

以及+=   -=   *=   /=   %=
public class Main {
    public static  void main(String [] argv)
    {
        int a=10;
          System.out.println(a++);  //输出 10
       System.out.println(++a);  //输出 12
        System.out.println(a--);  //输出12
        System.out.println(--a);  //输出10
        int b=a/=1;System.out.println(b);  //输出 10
         b=a+=1;System.out.println(b);  //输出 11
         b=a-=1;System.out.println(b);  //输出 10
         b=a*=1;System.out.println(b);  //输出 10
         b=a%=1;System.out.println(b);  //输出 0
    }
}

5、位运算

详见:位运算
public class Main {
    public static  void main(String [] argv)
    {
        int a=10;int b=9;
        //1010  1001
        int c=a&b;System.out.println(c);  //输出 8
         c=a^b;System.out.println(c);  //输出 3
         c=a|b;System.out.println(c);  //输出 11
         c=~a;System.out.println(c);  //输出 -11
         c=~b;System.out.println(c);  //输出 -10
    }
}

6、关系运算符

> 大于

< 小于

== 等于(注意是两个等号连在一起,不是一个等号,使用时不要搞混了)

!= 不等于

>= 大于等于

<= 小于等于

运算得到Boolean类型的值
public class Main {
    public static  void main(String [] argv)
    {
        int a=10;int b=9;

       // int c=a>b;  ERROR  boolean类型无法转换为其它类型
          boolean c=a>b;   System.out.println(c);  //输出 true
         c=a=b;System.out.println(c);  //输出 true
         c=a<=b;System.out.println(c);  //输出 false
    }
}

7、逻辑运算符

&& 与运算,要求两边同时为true才能返回true
|| 或运算,要求两边至少要有一个为true才能返回true
! 非运算,表示对表达式的结果进行反转
该运算符作用与boolea类型变量或值,其它类型不可。
还可能存在短路。
public class Main {
    public static  void main(String [] argv)
    {
        int a=10;int b=9;

       //  int c=a&&b;  ERROR  需作用boolean类型
        boolean d=true,e=false;
          boolean c=d&&e;   System.out.println(c);  //输出 false
         c=d||e;System.out.println(c);  //输出 true
         c=d&&d;System.out.println(c);  //输出 true
        c=e&&e;System.out.println(c);  //输出 falsee
         c=!d;System.out.println(c);  //输出 false
         c=!e;System.out.println(c);  //输出 true
    }
}

8、三元运算符

public class Main {
    public static  void main(String [] argv)
    {
        int a = 10;
        char b = a > 10 ? 'A' : 'B';   //三元运算符需要三个内容,第一个是判断语句,第二个是满足判断语句的值,第三个是不满足判断语句的值
        System.out.println(b);  //输出 B
    }
}

运算符优先级

JavaSE:3、运算符_第1张图片

括号、非、自增自减、算术、位运算(左右移)、关系运算、位运算、逻辑运算、三元,赋值类 

你可能感兴趣的:(JavaSE,java,开发语言)