009 运算符(自用)
009运算符
运算符是一种特殊的符号,用以表示数据间的运算、赋值和比较等。
常分为:
1.算术运算符
++a 和 a++
++a 先自加再运算 a++ 先运算在自加
弄清楚自加的规则,使用临时变量赋值
两道面试题
//面试题1,问:结果是多少?
int i = 1;// i -> 1
i = i++;//规则,使用临时变量:(1)temp = i (2) i = i + 1 (3)i = temp
System.out.println(i);// 输出结果为 1
//面试题2
int i = 1;
i = ++i;//规则,使用临时变量:(1)i = i + 1 (2)temp = i (3) i = temp
System.out.println(i);// 输出结果为 2
2.赋值运算符 =
注意点:复合赋值运算符会进行类型转换。
//复合赋值运算符会进行类型转换
byte b = 3;
b += 2;//等价于b = (byte)(b + 2)
3.关系运算符【比较运算符】
-
关系运算符的结果都是布尔型,要么是true要么是false。
-
关系表达式 经常用在if结构的条件中或循环结构的条件中。
== != < > <= >= instanceof 相等于 不等于 小于 大于 小于等于 大于等于 检查是否是类的对象
细节:
-
关系运算符的结果都是布尔型,要么是true要么是false。
-
关系运算符组成的表达式如’a
4.逻辑运算符
分为两组:1)短路与&& 短路或 || 取反 ! 2)逻辑与 & 逻辑或 | 逻辑异或 ^
| a | b | a&b | a&&b | a|b | a||b | !a | a^b |
|---|---|---|---|---|---|---|---|
| true | true | ||||||
| true | false | ||||||
| false | true | ||||||
| false | false |
a&b a&&b :同真则真
a|b a||b :一真则真
!a :取反
a^b :不同则真
&&和&的区别(短路与和逻辑与):(||和|类似)
- 短路与&&:如果第一个条件为false,则第二个条件不会判断,最终结果为false。
- 逻辑与&:不管第一个条件是否为false,第二个条件都要判断。效率低。
- 开发中,我们基本是用的是短路与,效率较高。
5.位运算符【需要二进制基础】
位运算符 >> << >>> 运算规则如下:
1)算数右移>> :低位溢出,符号位不变,并用符号位补溢出的高位。
2)算数左移<< :符号位不变,低位补0。
3)逻辑右移(无符号右移)>>> :低位溢出,高位补0。
4)特别说明,无 <<< 符号。
public class BitOpterator02{public static void main(String[] args){System.out.println(1 >> 2);//0 本质是1 / 2 / 2 = 0System.out.println(1 << 2);//4 本质是1 * 2 * 2 = 4System.out.println(4 << 3);//32System.out.println(15 >> 2);//3}
}
6.三元运算符
6.1基本语法
条件表达式 ? 表达式1 : 表达式2 ;
6.2运算规则
1)如果条件表达式为true,运算后结果为表达式1。
2)如果条件表达式为false,运算后结果为表达式2。
6.3三元运算符使用细节:
1)表达式1和表达式2要为可以赋给接受变量的类型(或可以自动转化)。
2)三元运算符可以转换成if——else语句
例题:实现三个数的最大值
//三元运算符练习
public class TernaryOperatorExercise{public static void main(String[] args) {int a = 3;int b = 5;int c = 10;int max =c > (a > b ? a : b) ? c :(a > b ? a : b);System.out.println("最大值为 :" + max);}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
