运算符之一:算术运算符
+ - + - * / % (前)++ (后)++ (前)-- (后)-- +
运算符之二:赋值运算符
= += -= *= /= %=
运算符之三:比较运算符
== != > < >= <= instanceof
结论:
- 比较运算符的结果是boolean类型
- 区分 == 和 =
运算符之四:逻辑运算符
& && | || ! ^
&与&&相同点:
- &与&&的运算结果相同。
- 当符号左边是true时,二者都会执行符号右边的运算。
不同点:当符号左边是false时,&继续执行符号右边的运算,&&不再执行符号右边的运算。
| 与 ||相同点:
- |与||的运算结果相同。
- 当符号左边是false时,二者都会执行符号右边的运算。
不同点:当符号左边是true时,|继续执行符号右边的运算,而||不再执行符号右边的运算。
开发中,推荐使用||。
说明:
- 逻辑运算符操作的都是boolean类型的变量
运算符之五:位运算符(了解)
<< >> >>> & | ^ ~
结论:
- 位运算符操作的都是整型的数据
- << :在一定范围内,每向左移1位,相当于 * 2
>> :在一定范围内,每向右移1位,相当于 / 2
一道经典的(老的)面试题:最高效方式的计算8*2 ?
2 << 3 或 8 << 1
运算符之六:三元运算符
- 结构:(条件表达式)? 表达式1 : 表达式2
- 说明
①条件表达式的结果为boolean类型
②根据条件表达式真或假,决定执行表达式1,还是表达式2:
如果表达式为true,则执行表达式1。
如果表达式为false,则执行表达式2。
③表达式1和表达式2要求是一致的。
④三元运算符可以嵌套使用
- 凡是可以使用三元运算符的地方,都可以改写为if-else
反之,不成立
- 如果程序既可以使用三元运算符,又可以使用if-else结构,那么优先选择三元运算符。原因:简洁、执行效率高。