运算符
运算符不只Java中有,其他语言也有运算符,运算符是一些特殊的符号,主要用于数学函数、一些类型的赋值语句和逻辑比较方面,我们就以Java为例,来看一下运算符。
赋值运算符
赋值运算符使用操作符=
来表示,意思是把=
号右边的值复制给左边,右边的值可以是任何常数、变量或者表达式,但左边的值必须是一个明确的,已经定义的变量。
但是对于对象来说,复制的不是对象的值,而是对象的引用,所以如果说将一个对象复制给另一个对象,实际上是将一个对象的引用赋值给另一个对象。
算数运算符
算数运算符就和数学中的数值计算类似,主要有
运算符 | 说明 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
算数运算符需要注意的就是优先级问题,当一个表达式中存在多个操作符时,操作符的优先级顺序就决定了计算顺序,最简单的规则就是先乘除后加减,()的优先级最高,没必要记住所有的优先级顺序,不确定的直接用0就可以了。
比较运算符
比较运算符用于程序中的变量之间,变量和自变量之间以及其他类型的信息之间的比较。比较运算符的运算结果是boolean
型。当运算符对应的关系成立时,运算的结果为true
,否则为false
。
比较运算符共有6个,通常作为判断的依据用于条件语句中。
运算符 | 说明 |
---|---|
> | 大于 |
< | 小于 |
== | 等于 |
>= | 大于等于 |
<= | 小于等于 |
!= | 不等于 |
逻辑运算符
逻辑运算符主要有三种,与、或、非。
运算符 | 说明 |
---|---|
&& | 短路与 |
|| | 短路或 |
! | 逻辑非 |
& | 逻辑与 |
| | 逻辑或 |
^ | 逻辑异或 |
异或用法:
// 相同为0,不同为1
//交换a、b的值
a=a^b
b=a^b
a=a^b
按位运算符
按位运算符用来操作整数基本类型中的每个比特位,也就是二进制位。按位操作符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。
运算符 | 作用 |
---|---|
& | 与 eg: 4 & 5 = 4 |
| | 或 eg: 4|5 = 5 |
~ | 非 eg: 4 ^ 5 = 1 |
^ | 异或 eg: ~4 = ~5 |
如果进行比较的双方是数字的话,那么进行比较就会变为按位运算。
按位与:按位进行与运算(AND),两个操作数中位都为1,结果才为1,否则结果为0。需要首先把比较双方转换成二进制再按每个位进行比较。
按位或:按位进行或运算(OR),两个位只要有一个为1,那么结果就是1,否则就为0。
按位非:按位进行异或运算(XOR),如果位为0,结果是1,如果位为1,结果是0。
按位异或:按位进行取反运算(NOT),两个操作数的位中,相同则结果为0,不同则结果为1。
移位运算符
移位运算符用来将操作数向某个方向(向左或者右)移动指定的二进制位数。
运算符 | 含义 |
---|---|
>> | 右移运算符 eg:8 >> 1 = 4 |
<< | 左移运算符 eg:9 << 2 = 36 |
三元运算符
三元运算符是类似if...else...
这种的操作符。
条件表达式?表达式1:表达式2