Java 基础

Java 运算符和表达式

2021-11-29  本文已影响0人  yjtuuige

一、Java 运算符分类:

1. 算术运算符

自增自减运算符

2. 关系运算符
3. 位运算符
4. 逻辑运算符
5. 赋值运算符
操作符 描述 例子
= 简单的赋值运算符,将右操作数的值赋给左侧操作数 C = A + B将把A + B得到的值赋给C
+ = 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 C + = A等价于C = C + A
- = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 C - = A等价于C = C - A
* = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 C * = A等价于C = C * A
/ = 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 C / = A,C 与 A 同类型时等价于 C = C / A
(%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 C%= A等价于C = C%A
<< = 左移位赋值运算符 C << = 2等价于C = C << 2
>> = 右移位赋值运算符 C >> = 2等价于C = C >> 2
&= 按位与赋值运算符 C&= 2等价于C = C&2
^ = 按位异或赋值操作符 C ^ = 2等价于C = C ^ 2
| = 按位或赋值操作符 C | = 2等价于C = C | 2
public class Test {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 0;
        c = a + b; // 30
        c += a ; // c = c+a = 30+10 = 40
        c -= a ; // c = c-a = 40-10 = 30
        c *= a ; // c = c*a = 30*10 = 300
        c /= a ; // c = c/a = 300/10 = 30
        c %= a ; //  c= c%a = 30%10 = 0      
        a = 10; 
        c = 15;
        c /= a ; // c = c/a = 15/10 = 1
        a = 10;
        c = 15;
        c %= a ; // c = c%a = 15%10 = 5
        c <<= 2 ; // c = c<<2 = 5<<2 = 20
        c >>= 2 ; // c = c>>2 = 20>>2 = 5
        c >>= 2 ; // c = c>>2 = 5>>2 = 1
        c &= a ; // c = c&a = 1&10 = (00000001 & 00001010=00000000) = 0
        c ^= a ; // c = c^a = 0^10 = (00000000 ^ 00001010=00001010) = 10
        c |= a ; // c = c|a = 10|10 = (00001010 | 00001010=00000000) = 0
    }
} 
6. 条件运算符
7. instanceof 运算符

二、Java 运算符优先级

注意:

  1. 任何整数模 2 不是 0 就是 1,所以只要改变被模数就可以实现开关运算。

  2. 逻辑运算符除了 ! 外都是用于连接两个 boolean 类型表达式。

  3. 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。

  4. 对于除号 /,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。

  5. + 除字符串相加功能外,还能把非字符串转换成字符串。

  6. = 两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。支持连续赋值。

  7. 三元运算符可简化 if-else 语句,三元运算符要求必须返回一个结果。

  8. 只有单目运算符、三元运算符、赋值运算符是从右向左运算的。

  9. 2 << 3 是算出 2 乘以 8 的最有效率的方法。

  10. 无符号右移时在最高位添零。

  11. Java 使用补码表示二进制数。

三、表达式

上一篇下一篇

猜你喜欢

热点阅读