1.算数运算符
符号 | 意义 |
---|---|
+ | 加号 |
- | 减号 |
* | 乘号 |
/ | 除号 |
% | 取余 |
示例:
整数(小数)相除的例子
10/3=3; 10.0/3=3.33333…
0/0
0.0/0.0
结果是NaN ,任何的NaN都不等于自己(面试题)
1.0/0.0 结果:Infinity,表示无穷大
2.自增自减运算符
符号 | 意义 |
---|---|
i++ | 后置自增(后置++) |
++i | 前置自增(前置++) |
i- - | 后置自减(后置–) |
- -i | 前置自减(前置–) |
对i=i+1不理解的,详见我的另一篇博客:https://blog.csdn.net/weixin_42439165/article/details/89354442
3.赋值运算符
符号 | 意义 |
---|---|
= | 赋值 |
+= | 累加并赋值 |
-= | 累减并赋值 |
*= | 累乘并赋值 |
/= | 累除并赋值 |
%= | 取余并赋值 |
赋值符号的运算顺序:从右到左,把符号右边的值赋值到左边的变量中
4.比较运算符
符号 | 意义 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
instanceof | 判断一个对象是否属于某种类类型 |
比较运算的结果是一个布尔类型的值(true 或false)
5.逻辑运算符
符号 | 意义 | 运算规则 |
---|---|---|
& | 与 | 两边都为true ,结果为true |
| | 或 | 只要有一边为true,结果为true |
&& | 双与 | 两边都为true ,结果为true |
|| | 双或 | 只要有一边为true,结果为true |
^ | 异或 | 两边不一样,结果为true,否则为false |
! | 非 | 逻辑非 |
区别于或和于,双或、双与具有短路行为举个例子:
上面小明的考试的成绩 要求是两科都为100分,看到第一科低于100分之后没有必要再看第二科成绩 : 代码表示:Java =
100&& php = 100 (java只考了5分)
如果逻辑运算左边的值能够确定整个逻辑运算表达式的值,那么右边就不执行了,短路了。
6.位运算符
计算机磁盘二进制位的运算,二进制数据的运算
符号 | 意义 | 运算规则 |
---|---|---|
& | 与(位运算) | 两边为true,结果为true |
| | 或(位运算) | 有一个为true,结果为true |
^ | 异或 | 两边不一样,就为true,否则为false |
~ | 取反 | true变成false,false变成true |
<< | 向左位移动 | 向左位移动 |
>> | 向右位移动 | 向右位移动 |
>>> | 无符号向右移动 | 向右位移动且无符号 |
7.三目运算符
语法:
X ? Y : Z ;
X :布尔类型的值或者结果为布尔类型的表达式
Y Z :一般来说数据类型相同的值或者表达式
运算规则:
X为true,就是Y的的结果值 (冒号前面的表达式的值):也就是整个三目运算的结果值
X为false,就是Z的结果值 (冒号后面的表达式的值):也就是整个三目运算的结果值