(三)运算符
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_