一、运算符

1)算数运算符:+,-,*,/,%,++,--

2)逻辑运算符:&&,&,||,|,!,^

3)赋值运算符:=

4)关系运算符:>,<,>=,<=,==,!=,

5)位运算符:&,|,^,~,<<,>>,>>>

6)条件运算符 ? :

7)扩展赋值运算符:+=,-=,*=,/=,%=

二、运算符介绍

1、算法运算符

public class Hello {
    public static void main(String[] args) {
        int a=10;
        int b=20;
        //通过加法运算符,对变量a和变量b进行相加
        System.out.println(a+b);//所得结果为 30
    }

}

2)-:减法运算符

public class Hello {
    public static void main(String[] args) {
        int a=10;
        int b=20;
        //通过减法运算符,对变量a和变量b进行相减
        System.out.println(a-b);//所得结果为 -10
    }

}

3)*:乘法运算符

public class Hello {
    public static void main(String[] args) {
        int a=10;
        int b=20;
        //通过乘法运算符,对变量a和变量b进行相乘
        System.out.println(a*b);//所得结果为 200
    }

}

4)/:除法运算符

public class Hello {
    public static void main(String[] args) {
        int a=10;
        double b=2;
        //通过除法运算符,对变量a和变量b进行相除
        //如果两个变量为整数类型,所得结果为整数,如果其中一个变量为浮点数,
        //所得结果为浮点数,除数不可为0,否则会引发异常。
        System.out.println(a/b);//所得结果为5.0  都是整数类型所得结果为5
    }
}

5)%:求余运算符

public class Hello {
    public static void main(String[] args) {
        int a=101;
        int b=20;
        int age=a%b;
        //通过求余运算符,对变量a和变量b进行相除余
        System.out.println(age);//所得结果为1
    }
}

6)++:自加运算符

public class Hello {
    public static void main(String[] args) {
        int a=10;
        int b=++a+1;//先增加在执行
        System.out.println(b);//结果为12
        
        int d=10;
        System.out.println(d);//结果为10
        int c=d++ +1;//先执行在增加
        System.out.println(c);//结果为11
    }
}

7)--:自减运算符

public class Hello {
    public static void main(String[] args) {
        int a=10;
        int b=--a-1;//先自减在执行
        System.out.println(b);//结果为8

        int d=10;
        System.out.println(d);//结果为10
        int c=d-- -1;//先执行在自减
        System.out.println(c);//结果为9
    }
}

2、逻辑运算符

短路运算:两个操作数进行操作的时候,int a=3(a=(a<2)&&a++<2)如果前面的如果错,后面的就不执行了

&&:与,操作的两个操作数都为true,则返回true,否则返回false

&:与&&所得结果相同,不短路

||:或,操作的两个操作数,其中一个为true,则返回true,负责为false

|:与||所得结果相同,不短路

!:非,如果所的为true,则返回false,如果为false,则返回为true。取反

^:两个操作数不同为true,相同则为flase

3、赋值运算符

public class Hello {
    public static void main(String[] args) {
        //=:赋值运算符
        int a=10;//通过=,吧10赋值给a
    }
}

4、关系运算符

public class Hello {
    public static void main(String[] args) {
        //关系运算符:>(大于),<(小于),>=(大于等于),<=(小于等于),
        //==(等于),!=(不等于)
        int a=10;
        int b=15;
        System.out.println(a!=b);//返回为true,a不等于b
    }
}

5、位运算符

先吧数据转换为二进制

&,|,^当俩边是数据就做位运算,俩边是布尔值就做逻辑运算    

%:按“与”,两个操作数进行比较,相同返回1,不相同返回0

|:按“或”,两个操作数进行比较,其中一个相同就返回1

^:按“非”,两个操作数进行比较,取相反的数

~:按“异或”,两个操作数相同返回0,不相同返回1

<<:左移运算符

>>:右移运算符

>>>:无符号右运算符

  

6、条件运算符

public class Hello {
    public static void main(String[] args) {
        //条件运算符 ? :
        //进行表达式比较,按照条件,输出满足条件的双引号内的内容
        String str = 9 < 4 ? "9大于4" : "9不大于4";
        System.out.println(str); //输出9不大于4
    }
}

7、扩展赋值运算符

public class Hello {
    public static void main(String[] args) {
        //扩展赋值运算符:+=,-=,*=,/=,%=
        int a=10;
        int b=20;
        //a+=b:等于a=a+b
        //a+=b;
        
        //a-=b:等于a=a-b
        //a-=b;
        
        //a*=b:等于a=a*b
        //a*=b;
        
        //a/=b:等于a=/+b
        //a/=b;
        
        //a%=b:等于a=a%b
        //a%=b;
        a%=b;
        System.out.println(a);
    }
}

三、运算符优先级

Java表达式中存在多个运算符,运算符之间也存在优先级关系,下面这个图中,1号内是优先级最高,14号是优先级最低的。运算符用顿号隔开。

优先级

运算符

结合性

1

()、[]、.

从左到右

2        

!、+(正)、-(负)、~、++、--

从右到左

3

*、/

从左到右

4

+(加)、-(减)

从左到右

5

<<、>>、>>>

从左到右

6

<、<=、>、>=

从左到右

7

==、!=

从左到右

8

&

从左到右

9

^

从左到右

10

|

从左到右

11

&&

从左到右

12

||

从左到右

13

?:

从右到左

14

=、+=、-=、*=、/=、%=、&=、|=、^=、~=、<<=、>>=、>>>=

从右到左