1.什么是运算符

  • 运算符是对一个值或者多个值进行计算,并得出计算结果

  • 运算结果的类型有时候是固定的,有时候是根据运算结果来的(两个int相加的结果类型是int,两个bype相加的结果类型是int)

  • 除赋值运算外,计算并不会改变变量的值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class Operator {

    public static void main(String[] args){

        byte b1 = 10;

        byte b2 = 20;

        byte b3 = b1+b2; //这里IDE会有错误提示,b3的值必须是int

    }

}

public class Operator {

    public static void main(String[] args){

        int a = 2;

        System.out.println(a+1);

        System.out.println(a);

    }

}

输出的结果是:

3

2

2.取模运算符 %

  • 可以计算余数

  • 负数可以取模

  • 负数也可以被取模

  • 小数也可以取模(基本不会遇到小数取模的场景)

  • 取模的结果是正数还是负数,和%前面的数字是正还是负,是一致的

  • %后的数如果是0,java会报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class Operator {

    public static void main(String[] args){

        int a = 10;

        System.out.println( a % 2);  // 0

        System.out.println( a % -2); // 0

        System.out.println( a % 3);  // 1

        System.out.println( a % -6); // 4

    }

}

public class Operator {

    public static void main(String[] args){

        int a = -10;

        System.out.println( a % 2);  // 0

        System.out.println( a % -2); // 0

        System.out.println( a % 3);  // -1

        System.out.println( a % -6); // -4

    }

}

3.整数的除法运算

  • int类型除以int类型,结果还是int类型,不会是浮点数

  • 如果想要结果是浮点数,则除数和被除数,其中一个是浮点数即可

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Operator {

    public static void main(String[] args){

        int a = 10;

        int b = 3;

        System.out.println(a / b);

    }

}

输出结果:

3

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Operator {

    public static void main(String[] args){

        double a = 10.0;

        int b = 3;

        System.out.println(a / b);

    }

}

输出结果:

3.3333333333333335

4.比较运算符和布尔运算符

比较运算符

  • >=

  • <

  • <=

  • !=

  • ==

布尔运算符(一般用&& 和 ||,而不用& 和 |)

  • ! 非运算符,not运算符;!true=false ; !false=true

  • & 与运算符,只要有一个为false,结果就是false

  • && 与运算符,运算结果和&一样

  • | 或运算符,只要有一个为true,结果就为true

  • || 或运算符,运算结果和|一样 (区别在于,如果使用的是||,那只要第一个操作数已经是true了,就不会在计算后一个操作数是true还是false,但是如果使用的是|,会把两个操作数的结果都计算出来,然后再比较)

5.小括号运算符

  • 小括号运算符中可以包含任何运算符,小括号决定了运算的顺序

6.运算符的优先级

  • ( )

  • !

  • *,/,%

  • +,-

  • >,>=,<,<=

  • ==

  • !=

  • &,&&,|,||

  • =

为什么赋值运算符优先级最低:因为要选把所有操作数计算完才能赋值

为什么布尔运算符的优先级低于比较运算符:因为要先比较完大小,得到true或false的结论,才能进行true和false的运算

为什么比较运算符的优先级低于算数运算符:因为要先进行计算,然后再拿结果比较大小