- 前言
- 一、算术运算符
- 二、赋值运算符
- 三、比较运算符
- 四、逻辑运算符
- 五、位运算符
- 六、三元运算符
- 七、运算符优先级
前言
本文主要介绍Java的各种运算符。
一、算术运算符
注:12/5=2,如果想要得到2.4,需要用到强制类型转换,比如:(double)12/5=2.4
如果想要实现加2,推荐num+=2,如果想要实现加1,推荐num++
三、比较运算符赋值运算符: =
扩展:+=、-=、*=、/=、%=
== !=
< > <=>=
instanceof:检查是否是类的对象。eg.“hello” instanceof String,结果是true。
比较运算符结果是boolean型,要么是true,要么是false
注:== !=不仅可以使用在数值类型数据类型之间,还可以使用在其他引用类型变量之间。
四、逻辑运算符五、位运算符&逻辑与 &&短路与
|逻辑或 ||短路或
!逻辑非 ^逻辑异或
注意区分逻辑与、短路与。逻辑与和短路与的运算结果相同,当符号左边是true,两者都会执行符号右边的运算,当符号左边是false,&继续执行符号右边的运算,&&不再执行符号右边的运算。【逻辑或和短路或同理,与之相反】
逻辑或和短路或的运算结果相同,当符号左边是false,两者都会执行符号右边的运算,当符号左边是true,|继续执行符号右边的运算,||不再执行符号右边的运算。
开发中推荐使用&&和||
<<:左移(相当*2) >>:右移
无符号右移 >>>
&与运算 |或运算
^ 异或运算 ~取反预算
如何区分&是位运算符还是逻辑运算符:
逻辑运算符符号左右是boolean型,位运算符符号左右是数值型。
六、三元运算符具体细节如下:
左移<<空位补0,被移除的高位丢弃,空缺位补0。
右移>>被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1。
无符号右移>>>被移位二进制最高位无论是0或者是1,空缺位都用0补。
七、运算符优先级结构:(条件表达式)?表达式1:表达式2
如果表达式为true,执行表达式1;如果表达式为false,则执行表达式2
要求表达式1和表达式2是一致的
三元运算符可以嵌套使用
从高到低:



