JavaSE----04.Java 运算符

04.Java 运算符

1、运算符分类

  • 算术运算符:+, -, *, /, %, ++, --
  • 赋值运算符:=
  • 关系运算符:>, <, >=, <=, ==, !=, instanceof
  • 逻辑运算符:&&, ||, !
  • 位运算符:&, |, ^, ~, >>, <<, >>>
  • 条件运算符:?, :
  • 扩展运算符:+=, -=, *=, /=

2、二元运算符(两个操作数)

    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 25;
        int d = 25;
        System.out.println("a + b = " + (a + b) );
        System.out.println("a - b = " + (a - b) );
        System.out.println("a * b = " + (a * b) );
        System.out.println("b / a = " + (b / a) );
    }

3、关系运算符(返回布尔值)

  • 表格中的实例整数变量A的值为1,变量B的值为2:
运算符 描述 例子
== 检查两个操作数的值是否相等,相等则条件为真 (A == B)为假
!= 检查两个操作数的值是否相等,值不相等则条件为真 (A != B) 为真
> 检查左操作数的值是否大于右操作数的值,如果是那么条件为真 (A > B)为假
< 检查左操作数的值是否小于右操作数的值,如果是那么条件为真 (A < B)为真
>= 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真 (A >= B)为假
<= 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真 (A <= B)为真

4、取模运算(取余)

public static void main(String[] args) {
    System.out.println(9 % 4);   //1
    System.out.println(-9 % -4);  //-1
    System.out.println(-10 % 4);  //-2
    System.out.println(9 % -4);   //1
}

5、一元运算符

  • 自增(++)自减(--)运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自增自减运算符是一个操作数,分为前缀和后缀两种。
  • 前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算
  • 后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算
public static void main(String[] args) {
        int a = 3;
        //a = 3
        System.out.println("a1:" + a);
        //执行完后,b=3。先给b赋值,再自增。
        int b = a++;
        //a = 4
        System.out.println("a2:" + a);
        //执行完后,c=5。先自增,再给c赋值
        int c = ++a;
        //a = 5
        System.out.println("a3:" + a);
    }

6、逻辑运算符

  • 逻辑与(and):&&,逻辑或(or):||,逻辑非(取反):!
  • 假设布尔变量A为真,变量B为假
操作符 描述 例子
&& 当且仅当两个操作数都为真,条件才为真。 (A && B)为假
| | 如果任何两个操作数任何一个为真,条件为真。 (A | | B)为真
如果条件为true,则逻辑非运算符将得到false。 !(A && B)为真

7、位运算符

  • 假设整数变量 A 的值为 60 和变量 B 的值为 13:
A = 0011 1100
B = 0000 1101
操作符 描述 例子
如果相对应位都是1,则结果为1,否则为0 (A&B),得到12,即0000 1100
| 如果相对应位都是 0,则结果为 0,否则为 1 (A | B)得到61,即 0011 1101
^ 如果相对应位值相同,则结果为0,否则为1 (A ^ B)得到49,即 0011 0001
按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 (〜A)得到-61,即1100 0011
<< 按位左移运算符。左操作数按位左移右操作数指定的位数。 A << 2得到240,即 1111 0000
>> 按位右移运算符。左操作数按位右移右操作数指定的位数。 A >> 2得到15即 1111
>>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 A>>>2得到15即0000 1111

JAVA中&&和&、||和|(短路与和逻辑与、短路或和逻辑或)的区别?

  • &&逻辑与, ||逻辑或, 它们都是逻辑运算符
  • &按位与, |按位或, 它们都是位运算符
  • 而a&b或者a|b则是二进制的与或运算
  • &同为1时为1,否则为0
  • |同为0时为0,否则为1

7、条件运算符(三目)

  • 三目条件运算符,语法格式:x ? y : z
  • 其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值。
public static void main(String[] args) {
        int score = 80;
        String type = score < 60 ? "不及格" : "及格";
        //输出:type= 及格
        System.out.println("type= " + type);
    }

8、运算符优先级

优先级 运算符
1 . () 点和括号
2 ++ -- 自增自减
3 new 新建对象
4 * / % 乘除模
5 + - 加减
6 >> << >>> 右移 左移 无符号右移
7 > < >= <= 比较运算符
8 == !=
9 & 位和
10 ^ 位异或
11 `
12 ! 逻辑非
13 && 短路和
14 `
15 ?: 三目运算符
16 = += -= *= /= %= ^= 赋值
17 &= <<= >>= 位运算赋值
posted @ 2019-11-13 20:21  丫头的星星  阅读(133)  评论(0编辑  收藏  举报