一:赋值运算符
赋值运算符以符号“=”表示,它是一个二元运算符(对两个操作数作处理),其功能是将右方操作数所含的赋值给左方的操作数。
由于赋值运算符“=”处理时会先取得右方表达式处理后的结果,因此一个表达式中若含有两个以上的“=”运算符,会从最右方的“=”开始处理。
二:算术运算符
Java中的算术运算符主要有+(加)、-(减)、*(乘)、/(除)、%(余数),它们都是二元运算符。如图所示。其中"+"和"-"运算符还可以作为数值的正负号。
运算符 | 说明 | 实例 | 结果 |
+ | 加 | 12.45f+15 | 27.45 |
- | 减 | 4.56-0.16 | 4.4 |
* | 乘 | 5L*12.45f | 62.25 |
/ | 除 | 7/2 | 3 |
% | 取余数 | 12%10 | 2 |
三:自增和自减运算符
自增、自减运算符是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。自增、自减运算符的作用是使变量的值增1或减1.放在操作元前面的自增、自减运算符,会先将变量的值加1(减1),然后再使用该变量参与表达式的运算。放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算符,然后再使该变量加1(减1)。
运算符 | 用法 |
++a | 先自增,后运算 |
a++ | 先运算,后自增 |
--a | 先自减,后运算 |
a-- | 先运算,后自减 |
四:比较运算符
比较运算符属于二元运算符,用于程序中的变量之间、变量和白变量之间以及其他类型的信息之间的比较。比较运算符的运算结果是 boolean 型。当运算符对应的关系成立时,运算结果为 true,否则为 false。所有比较运算符通常作为判断的依据用在条件语句中。比较运算符共有 6 个.
运算符 | 作用 | 举例 | 操作数据 | 结果 |
> | 比较左方是否大于右方 | 'a'>'b' | 整型、浮点型、字符型 | fa'l'se |
< | 比较左方是否小于右方 | 156<456 | 整型、浮点型、字符型 | ture |
== | 比较左方是否等于右方 | 'c'=='c' | 举办时间类型、引用型 | ture |
>= | 比较左方是否大于等于右方 | 479>=426 | 整型、浮点型、字符型 | ture |
<= | 比较左方是否小于等于右方 | 12.45<=45.5 | 整型、浮点型、字符型 | ture |
!= | 比较左方是否不等于右方 | 'y'!=‘t’ | 举办时间类型、引用型 | ture |
五:逻辑运算符
返回类型为布尔类型的表达式,如比较运算符,可以被组合在一起构成一个更复杂的表达式。这是通过逻辑运算符来实现的。逻辑运算符包括&(&&)(逻辑与)、||(逻辑或)、!(逻辑非)。逻辑运算符的操作元必须是boolean型数据。在逻辑运算符中,除了“!”是一元运算符,其他都是二元运算符。逻辑运算符的用法和含义如图所示:
运算符 | 含义 | 用法 | 结合方向 |
&&、& | 逻辑与 | op1&&op2 | 从左到右 |
|| | 逻辑或 | op1||op2 | 从左到右 |
! | 逻辑非 | !op | 从右到左 |
结果为boolean型的变量或表达式可以通过逻辑运算符组合为逻辑表达式。
用逻辑运算符进行逻辑运算时,结果如图所示:
表达式1 | 表达式2 | 表达式1&&表达式2 | 表达式1||表达式2 | !表达式1 |
ture | ture | ture | ture | false |
ture | false | false | ture | false |
false | false | false | false | ture |
false | ture | false | ture | ture |
六:位运算符
位运算符除“按位与”和“按位或”运算符外,其他只能用于处理整数的操作数。包括byte、short、char、int和 long 等数据类型。位运算是完全针对位方面的操作。整型数据在内存中以二进制的形式表示,如 int 型变量 7 的二进制表示是 00000000 00000000 0000000 000011。
左边最高位是符号位,最高位是 0 表示正数,若为1 则表示负数。负数采用补码表示,如-8的二进制表示为 111111111 111111111 111111 11111000。这样就可以对整型数据进行核位运算。
运算符 | 用法 | 含义 |
& | 两者都为1,结果才是1 | 与 |
| | 只要有一者为1,结果就是1 | 或 |
~ | 1变0,0变1 | 取反 |
^ | 两者相同即为0,不同为1 | 异或 |
位移操作:
述运算符,还可以对数据按二进制位进行移位操作。Java 中的移位运算符有以下3种
运算符 | 用法 |
<< | 左移 |
>> | 右移 |
>>> | 无符号右移 |
左移就是将运算符左边的操作数的二进制数据,按照运算符右边操作数指定的位数向左移动。自
分补 0。右移则复杂一些。当使用“>>”符号时,如果最高位是 0.右移空的位就现入0,如果最高位
是 1,右移空的位就填入 1。
七:三元运算符
三元运算符的使用格式为:
条件式 ? 值1 :值2
三元运算符的运算规则为:若条件式的值为true,则整个表达式取值1,否则取值2.例如:
boolean b =20 < 45 ? true:false;
上述程序表达式"20<45"的运算结果返回真,那么boolean型变量b取值为true。相反,如果表达式的运算结果返回为假,则boolean型变量b取值为false。
三元运算符等价于if...else语句,例如上述代码等价于:
boolean a; //声明boolean型变量
if(20<45) //将20 < 45 作为判断条件
a=true; //条件成立,将true赋值给a
else
a=false; //条件不成立,将false赋值给a
八:运算符优先级
Java中表达式就是使用运算符连接起来的符合Java规则的式子。运算符的优先级决定了表达式中运算执行的先后顺序。通常,优先级由高到低的顺序依次是:
增量和减量运算
算术运算
比较运算
逻辑运算
赋值运算
如果两个运算符有相同的优先级,那么左边的表达式要比右边表达式先被处理。左Java中众多运算符特定的优先级如图所示:
优先级 | 描述 | 运算符 |
1 | 圆括号 | () |
2 | 正负号 | +、- |
3 | 一元运算符 | ++、-- |
4 | 乘除 | *、/、% |
5 | 加减 | +、- |
6 | 位移运算 | >>、>>>、<< |
7 | 比较大小 | <、>、>=、<= |
8 | 比较是否相等 | ==、!= |
9 | 按位与运算 | & |
10 | 按位异或运算 | ^ |
11 | 按位或运算 | | |
12 | 逻辑与运算 | && |
13 | 逻辑或运算 | || |
14 | 三元运算符 | ?: |
15 | 赋值运算符 | = |