(三)运算符
1. 算数运算符
+、-、*、/ ,%、i++、++i、i--、--i
取余运算符%:被模数的符号与取余运算结果同号
byte b1 = 127;
b1++;
System.out.println(b1); // -128
2. 赋值运算符
① =可以连续赋值
short s1, s2;
s1 = s2 = 10;
//
int i1 = 10, i2 = 10;
② += ,-=,*=,/=
以上赋值运算符都不会改变变量的数据类型
3. 比较运算符
==, !=, >=, <= , >, <
4. 逻辑运算符
&, &&, |, ||, !, ^
① 操作的都是 boolean 类型的变量;
② & 与 &&
相同点1:&与&&的运算结果都相同
相同点2:当符号左边是 true,都会执行右边的运算;
不同点:但符号左边为 false,&&的右边不会执行。
③ | 与||
与 &和&& 的情况类似,当 || 的左边是 true,右边不会执行。
5. 位运算符
<<,>>, >>>, &, |, ^, ~
① 位运算操作数都是整型数据
② << 左移,在一定范围内,每向左移1位,相当于 *2
③ >> 右移,在一定范围内,每向右移1位,相当于 /2
被移位数的二机制最高位为 0,则空缺位补 0;为1.则补0.
④ >>> 无论最高位是 0 还是 1,空缺位置都补0.
面试题1
最高效的计算 2 * 8
2 << 3
面试题2
交换a,b的值
// 方法一 int temp = num1; num1 = num2; num2 = temp; // 方法二 num1 += num2; num2 = num1 - num2; num1 = num1 - num2; // 方法三 num1 = num1 ^ num2; num2 = num1 ^ num2; num2 = num1 ^ num2;
6. 三元运算符
(条件表达式) ? 表达式1 : 表达式2
① 条件表达式的结果是布尔类型
② 表达式1、2的类型一致
③ 三目运算可以嵌套(不推荐)
④ 三元运算式可以用 if-else 互换
7. 幂运算
Java 使用 Math.pow(a,b) 计算 ab
- 科学计数法
科学计数法 a x 10b => aEb
- 下划线表示法
为了提高可读性,Java允许在整数之间加下划线 _
61_091_19_030、3567_4657_6746_3436
但是这种放在两边的形式确是错误的👇
_65, 65_