基本运算符
算术运算符
+ 加
- 减
* 乘
/ 除
- 除的值为小数时,要注意精度,double
% 取余(模运算)
++ 自增
- 一元运算符
a++
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vpltm6XI-1628599646121)(C:\Users\ykw\AppData\Roaming\Typora\typora-user-images\image-20210807125845956.png)]
- a++是先赋值,后自增
++a
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0VqHliOR-1628599646123)(C:\Users\ykw\AppData\Roaming\Typora\typora-user-images\image-20210807130100175.png)]
- ++a是先自增,后赋值
– 自减
- 同++一样,都是单目运算符,运算规则一样
特殊
幂运算
- - 要使用幂运算,就要使用一个数学工具类Math - 使用方法:Math.pow(2,3); + (Alt + Enter快敏捷键)就ok了
赋值运算符
= 赋值
- 把右边的值赋值给左边
关系运算符
> 大于
< 小于
>= 大于等于
<= 小于等于
== 等于
!= 不等于
instanceof
不基本运算符
逻辑运算符
&& 逻辑与
-
逻辑与运算:两个变量都为真,结果才为真
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qiua3VSz-1628599646126)(C:\Users\ykw\AppData\Roaming\Typora\typora-user-images\image-20210807165856075.png)]
|| 逻辑或
-
逻辑或运算:两个变量有一个为真,结果才为真
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5TsCBRlz-1628599646129)(C:\Users\ykw\AppData\Roaming\Typora\typora-user-images\image-20210807165937962.png)]
! 逻辑非运算符
-
如果是真,则变为假;反之
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ck1EYzCx-1628599646132)(C:\Users\ykw\AppData\Roaming\Typora\typora-user-images\image-20210807170054736.png)]
短路运算
-
如果逻辑与运算左边的值为假,那么它就不会执行右边的运算了
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-diq8eVXm-1628599646134)(C:\Users\ykw\AppData\Roaming\Typora\typora-user-images\image-20210807170811859.png)]
- a的值为5,所以没有执行与运算右边的a++<4
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-diq8eVXm-1628599646134)(C:\Users\ykw\AppData\Roaming\Typora\typora-user-images\image-20210807170811859.png)]
-
同理,如果逻辑或运算左边的值为真,那么它就不会执行右边的运算了
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nSw2oV64-1628599646135)(C:\Users\ykw\AppData\Roaming\Typora\typora-user-images\image-20210807171218287.png)]
- a 的值依然为5,所以右边的运算没有执行
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nSw2oV64-1628599646135)(C:\Users\ykw\AppData\Roaming\Typora\typora-user-images\image-20210807171218287.png)]
位运算符
& 按位与
-
A&B,全1为1,有0为0
| 按位或
- A|B,有1为1,全0为0
^ 按位异或
- A^B,相同为0,不同为1
~ 按位取反运算符
- ~B,0变为1,1变为0
<< 左移
-
左移一位相当于乘以2
-
在二进制中,快速得到2*8的值
>> 右移
- 右移一位相当于除以2
条件运算符
三元运算符 ? :
扩展赋值运算符
+= 加后赋值
-= 减后赋值
/= 除后赋值
- a /= b 相当于 a= a /b
字符串连接符 +
-
如果加号+两侧出现了String(字符串)类型"",那么就会把其他操作数转换为String,进行连接
-
int a=10,b=20; System.out.println(""+a+b);//得到的结果为1020
-
题目
-
int a=10,b=20; System.out.println(""+a+b);//得到的结果为1020 System.out.println(a+b+"");//得到的结果为30
- 没有括号,则从左到右进行运算
优先级
- 指针最优,单目运算优于双目运算
- 先算术运算,后移位运算,最后位运算
- 逻辑运算最后结合
-
简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
-
同一优先级的运算符,运算次序由结合方向所决定