运算符
①分隔符
, ; [] () {}
②算数运算符
- 加法 -减法 *乘法 /除法 %求余数 ++自增一 --自减一
++a和a++的区别
++a先+1,在给表达式(++a)赋值
a++先给表达式(a++)赋值再进行+1操作
不论是a++还是++a,都是对a进行+1操作
③关系运算符
1.关系运算符,结果为boolean类型
2.> 大于 < 小于 >=大于等于 <=小于等于 ==等于 != 不等于
(在java语言中=是赋值运算符,==才是用来比较大小的)
实例: boolean flag = 1 == ‘1’ //false(错误)
④布尔逻辑运算符
1.布尔逻辑运算符,结果为boolean类型
- !逻辑非 &逻辑与 |逻辑或 ^逻辑异或 &&短路与 | | 短路或
3.特点 ! 取反
&和&& 一假即假
| 和 | | 一真即真
^ 同假异真
[面试题] & 和 && 区别
& 逻辑运算符(逻辑与) 不论表达式的真假,每个表达式都必须执行
位运算符 (按位与), 例如:int a =3; int b=4; int c=a&b;
将值转换成二进制数再运算
&& 逻辑运算符(短语与),
一旦发现使用&&连接的表达式值为false,
则 后面使用&&连接的表达式都不用执行了
⑤ 位运算符
& 按位与 | 按位或 ^ 按位异或 ~ 按位取反
右移运算符 << 左移运算符 >>> 无符号右移运算符
- 需要将值,转换成二进制数再运算
- 特点, ~ 1变0 0变1 & 有0则为0 | 有1则为1 ^ 相同为0 不同为1
- 运算符优先级从高到低 ~ & ^ |
m>>n m向右移动n位 步骤:
先将m转换成二进制数,二进制数向右移动n位,等价于除以n个2
m<<n m向左移动n位 步骤:
先将m转换成二进制数,二进制向左移动n位,等价于乘以n个2
⑥ 赋值运算符
= 赋值运算符
扩展赋值运算符:+=,-=,*=,/=,%=,^=,&=,|=,>>=,<<=,>>>= 例如: int a = 10; a+=20; // a=a+20;
先展开再运算 a%=10; // a=a%10;
⑦ 字符串连接符的“+”
特点:一旦遇到了""字符串,后面所有的+都是连接符
⑧ 三目运算: ? :
数据类型 变量名 = 逻辑表达式?值1:值2;
解释: 逻辑表达式的值为true,则把值1赋值给变量 否则把值2赋值给变量
【面试题】 a>b?a:c>d ?c:d;运算顺序?
三目运算符嵌套使用,规律
运行:从左往右
结合律:从右往左 (如何加括号)
a>b ? a :(c>d ?c:d);
先执行 a>b
情况1: true, 直接输出 a 结束
情况2: false,再执行 c>d ,true输出c,否则输出d