算术运算符
+
- 除表示正号和加法,也可作连接运算。
-
- 表负数,减法。
*
- 表乘法。
/
- 表除法。
%
- 取模(余) 运算,
7%5 = 2;
++
- 表自增,先运算后取值:
a = 2; b = ++a; // a=3,b=3
先取值后运算:a = 2; b=a++; // a=3,b=2
--
- 表自减,先运算后取值:
a = 2; b = --a; // a=1,b=1
先取值后运算:a = 2; b=a--; // a=1,b=2
注:
自增自减不会改变变量本身数据类型
short s1 = 1;
s1 = s1 + 1; //编译失败,1为整型
s1 = ( short )( s1 + 1 ); //正确
s1++;//正确
赋值运算符
=
- 可连续赋值,
int a = b = 3;
- 扩展:
+=
-=
*=
/=
%=
等价于num %= 2
→num = num % 2
,以此类推
注:
扩展赋值运算符运算时,变量本身数据类型不会发生改变。
实现变量加2操作,有几种方式?变量加1操作,又有几种方式?
比较(关系)运算符
相等于:==
不等于:!=
大于:>
小于:<
大于等于:>=
小于等于:<=
检查是否为类对象:instanceof
结论:
比较运算符的结果都是Boolean型(即false或true);注意区分==和=。
逻辑运算符
逻辑与:&
短路与:&&
逻辑或:|
短路或:||
逻辑非:!
逻辑异或:^
练习:
注:
只适用于布尔型的变量,结果只能是 true 或 false,异或可理解相异就为ture,相同为false。
位运算符
位运算是直接对整数的二进制进行的运算。
左移:<<
3 << 2 = 12 // 0011 → ~~00~~ 1100
;
右移:>>
3 >> 2 = 0 //0011 → 0000~~11~~
;
无符号右移:>>>
与运算:&
或运算:|
异或运算:^
取反运算:~
结论:
1.位运算符运算于整型数据。2. num << 1 、num >> 1 等同于num * 2 、num / 2;3.无论正数、负数,它们的右移、左移、无符号右移 32 位都是其本身。
三元运算符
(条件表达式)?表达式1:表达式2;
条件表达式为ture,输出表达式1;
条件表达式为false,输出表达式2;
class SanYuan{
public static void main(String SanYuan[]){
int m = 12, n = 5;
int max = ( m > n ) ? m : n ;
System.out.println(max);
}
}