运算符

117 阅读3分钟

java 运算符

算术运算符

算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。

  1. +加法 相加运算符两侧的值
  2. -减法 左操作数减去右操作数
  3. *乘法 相乘操作符两侧的值
  4. /除法 左操作数除以右操作数
  5. %取模 左操作数除以右操作数的余数(取余)
  6. ++自加 操作数的值增加一
  7. --自减 操作数的值减少一

自增自减运算符

  1. 一个操作数
  2. 前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。
  3. 后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算。

关系运算符

  1. ==
  2. !=
  3. >
  4. <
  5. >=
  6. <=

位运算符

Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。 位运算符作用在所有的位上,并且按位运算。

  1. & 如果相对应位都是1,则结果为1,否则为0 (A&B),得到12,即0000 1100
  2. | 如果相对应位都是0,则结果为0,否则为1 (A | B)得到61,即 0011 1101
  3. ^ 如果相对应位值相同,则结果为0,否则为1 (A ^ B)得到49,即 0011 0001
  4. 〜 按位补运算符翻转操作数的每一位,即0变成1,1变成0。 (〜A)得到-61,即1100 0011
  5. << 按位左移运算符。左操作数按位左移右操作数指定的位数。 A << 2得到240,即 1111 0000
  6. />> 按位右移运算符。左操作数按位右移右操作数指定的位数。 A >> 2得到15即 1111
  7. />>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 A>>>2得到15即0000 1111

逻辑运算符

  1. &&
  2. || 或
  3. ! 非

赋值运算符

  1. = 简单的赋值运算符,将右操作数的值赋给左侧操作数 C = A + B将把A + B得到的值赋给C
    • = 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 C + = A等价于C = C + A
    • = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 C - = A等价于C = C - A
    • = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 C * = A等价于C = C * A
  2. / = 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 C / = A等价于C = C / A
  3. (%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 C%= A等价于C = C%A
  4. << = 左移位赋值运算符 C << = 2等价于C = C << 2
  5. ·>> = 右移位赋值运算符 C >> = 2等价于C = C >> 2
  6. &= 按位与赋值运算符 C&= 2等价于C = C&2
  7. ^ = 按位异或赋值操作符 C ^ = 2等价于C = C ^ 2
  8. | = 按位或赋值操作符 C | = 2等价于C = C | 2

其他运算符

  1. 条件运算符(三元表达式) 该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。
  2. instanceof 运算符 该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。 String name = "James"; boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真