Java 运算符
表达式
- 表达式由运算符和操作数组成
- 如:5、num1、num1 + num2
运算符
- 算数运算符
- 算数运算符主要用于进行基本的算数运算,如加法、减法、乘法和除法等。
- 加法 +
- 减法 -
- 乘法 *
- 除法 / 在除法运算中,如果除数和被除数都是整数,则做整除运算
- 求余数 %
- 自增1 ++
- 自减1 –
- 赋值运算符
- 格式:变量 = 表达式;
- 注意:赋值运算符是从右往左运算!
- 赋值运算符的左边不能是常量,必须是常量
- 复合赋值运算符
- += 代码示例:x+=5 , x = x + 5
- -=
- *=
- /=
- %=
- 关系运算符
- 比较运算符用于判断两个数据的大小,如大于
- 比较的结果是一个 布尔值
- 大于 >
- ‘A’ > ‘’B 结果为 false , 比较的是两个字符的 ASCll 值
- 小于 <
- 大于等于 >=
- 小于等于 <=
- 等于 ==
- float f = 5.0f; long l =5; f==l; 结果为true,浮点数与整数进行比较,只要值相等就返回true
- 不等于 !=
- 作用与功能
- 数据比较
- 关系运算符主要用于条件和循环语句中的判断条件
- 条件结构就是根据不同的条件去执行不同的操作
- 数据比较
- 逻辑运算符
- 逻辑运算符是用来连接一个或多个条件,判断这些条件是否成立
- 逻辑运算符的结果是布尔类型
- 与
- && 或 &
- && 运算符又叫短路运算符,如果第一个表达式的值就能决定表达式最后的结果,运算符右边的表达式就不再运算了
- & 不论第一个表达式 true 还是 false,都要执行右边的表达式
- operator1 && operator2
- && 或 &
- 或
- || 或 |
- || 和 && 运算符一样
- | 和 & 一样
- operator1 || operator2
- || 或 |
- 非
- !
- 对原条件进行取反
- !operator1
- !
- 注意:逻辑运算符的操作数都是布尔类型的
- 条件运算符
- 三元运算符 ? :
- Java 中的条件运算符是三目运算符
- ++ 单目运算符
- 双目运算符,需要对两个数进行操作 + - * /
- 语法:布尔表达式 ? 表达式1 : 表达式2
- 当布尔表达式的值为 true , 则返回表达式 1 的值,否则 返回表达式 2 的值
- 位运算符
- 按位与(&):逐位进行与操作,只有当对应位都为 1 时,结果位才为 1。
1
2
3int a = 5; // 二进制为 0101
int b = 3; // 二进制为 0011
int c = a & b; // 结果为 1 (二进制为 0001) - 按位或(|):逐位进行或操作,只要有一个对应位为 1,结果位就为 1。
1
2
3int a = 5; // 二进制为 0101
int b = 3; // 二进制为 0011
int c = a | b; // 结果为 7 (二进制为 0111) - 按位异或(^):逐位进行异或操作,当对应位不同时,结果位为 1。
1
2
3int a = 5; // 二进制为 0101
int b = 3; // 二进制为 0011
int c = a ^ b; // 结果为 6 (二进制为 0110) - 按位取反(~):逐位进行取反操作,0 变 1,1 变 0。
1
2int a = 5; // 二进制为 0101
int b = ~a; // 结果为 -6 (二进制为 1010) - 左移(<<):将二进制位向左移动指定的位数,相当于乘以 2 的指定次方。
1
2int a = 5; // 二进制为 0101
int b = a << 1; // 结果为 10 (二进制为 1010) - 右移(>>):将二进制位向右移动指定的位数,相当于除以 2 的指定次方。
1
2int a = 5; // 二进制为 0101
int b = a >> 1; // 结果为 2 (二进制为 0010)
- 按位与(&):逐位进行与操作,只有当对应位都为 1 时,结果位才为 1。
- 运算符优先级
运算符 描述 权重 () 圆括号 0 !,++,– 逻辑非,自增,自减 1 *,/,% 乘法,除法,取余 2 +,- 加法,减法 3 <,<=,>,>= 小于,小于等于,大于,大于等于 4 ==,!= 等于,不等于 5 && 逻辑与 6 || 逻辑或 7 =,+=,*=,/=,%=,-= 赋值运算符,复合赋值运算符 8