1、算数运算符
假设整数类型变量A的值为:10,变量B的值为:20
运算符 | 描述 | 示例 |
---|---|---|
+ | 加法运算符,第一个操作数加上第二个数操作数 | A+B结构为30 |
- | 减法运算符,从第一个操作数减去第二个操作数 | A - B结果为:-10 |
* | 两个操作数相乘 | A * B结果为:200 |
/ | 左操作数除以右操作数返回模值 | B / A结果为:2 |
% | 左操作数除以右操作数返回余数 | B / A结果为:0 |
++ | 将操作数的值增加1 | A++,则A的值为:11 |
– | 将操作数的值减1 | A–,则A的值为:9 |
注意点:
- 当 int ± char 的时候,char会按照ASCII表被转为数值在相加减。
- 当String做加法时候,运算会变成字符串拼接,其他类型的数值与其相加也会先转为字符串后进行拼接。
++
--
自增、自减:a++,++a 一个是先++,一个是后++,虽然这样写,先加后加结果不变,但有些时候这两个有不同结果;int a = 0; int b = 0; b = a++; // a先赋值给b,b=0,a+1=1 b = ++a; // 先a+1=2,后赋值给b=2
2、赋值运算符
运算符 | 描述 | 示例 |
---|---|---|
= | 简单赋值运算符。 将右侧操作数的值分配给左侧操作数。 | C = A + B将A + B的值分配给C。 |
+= | 相加与赋值运算符。 它将右操作数相加到左操作数并将结果分配给左操作数。 | C += A等于C = C + A。 |
-= | 减去与赋值运算符。 它从左操作数中减去右操作数,并将结果赋给左操作数。 | C -= A等于C = C - A。 |
*= | 乘以与赋值运算符。 它将右操作数与左操作数相乘,并将结果赋给左操作数。 | C *= A等于C = C * A。 |
/= | 除以与赋值运算符。 它将左操作数除以右操作数,并将结果赋给左操作数。 | C /= A等于C = C / A。 |
%= | 模数与赋值运算符。 它使用两个操作数来计算获取模数,并将结果赋给左操作数。 | C %= A等于C = C % A。 |
<<= | 左移与赋值运算符。 | C <<= 2与C = C << 2相同 |
>>= | 右移与赋值运算符。 | C >>= 2与C = C >> 2相同 |
&= | 按位与赋值运算符。 | C &= 2与C = C & 2相同 |
^= | 按位异或和赋值运算符。 | C ^= 2与C = C ^ 2相同 |
Ι= | 按位包含或与赋值运算符。 | C Ι= 2与C = C Ι=2相同 |
3、条件运算符
假设变量A的值是10,变量B的值是20.
运算符 | 描述 | 示例 |
---|---|---|
== | 等于运算符,检查两个操作数的值是否相等,如果相等,则条件变为真。 | A==B结果为假。 |
!= | 不等于运算符,检查两个操作数的值是否不相等,如果不相等,则条件变为真。 | A!=B结果为真。 |
> | 大于运算符,检查左操作数的值是否大于右操作数的值,如果大于,则条件变为真。 | A>B结果为假。 |
< | 小于运算符,检查左操作数的值是否小于右操作数的值,如果小于,则条件变为真。 | A<B结果为真。 |
>= | 大于或等于运算符,检查左操作数的值是否大于等于右操作数的值,如果大于或等于,则条件变为真。 | A>=B结果为假。 |
<= | 小于或等于运算符,检查左操作数的值是否小于或等于右操作数的值,如果小于或等于,则条件变为真。 | A<=B结果为真。 |
4、按位运算符
Java定义了几个按位运算符,可以应用于整数类型, 如:long,int,short,char和byte。e按二进制位运算符处理位并执行逐位运算。假设整数变量A=60,变量B=13
运算符 | 描述 | 示例 |
---|---|---|
& | 二进制AND运算符,如果存在于两个操作数中,则它会将结果复制到结果中。 | A & B的结果为:12,也就是:0000 1100 |
Ι | 二进制OR运算符,如果存在于任一操作数中,则复制一位。 | A Ι B 的结果为:61,也就是:0011 1101 |
^ | 二进制异或运算符,如果在一个操作数中设置但不在两个操作数中设置,则复制该位。 | A ^ B的结果为:49,也就是:0011 0001 |
~ | 二元一元补充运算符是一元的,具有“翻转”位的效果。 | ~A的结果为:-61,也就是:1100 0011 |
<< | 二进制左移运算符,左操作数值向左移动右操作数指定的位数。 | A << 2的结果为:240,也就是:1111 0000 |
>> | 二进制右移运算符,左操作数值向右移动右操作数指定的位数。 | A >> 2的结果为:15,也就是:1111 |
>>> | 右移零填充运算符。 左操作数值向右移动右操作数指定的位数,移位值用零填充。 | A >>>2的结果为:15,也就是:0000 1111 |
5、逻辑运算符
假设布尔变量A的值为:true,变量B 的值为:false,则 -
运算符 | 描述 | 示例 |
---|---|---|
&& | 逻辑AND运算符。 如果两个操作数都不为零,则条件成立。 | (A && B)结果为:false |
ΙΙ | 逻辑OR运算符。 如果两个操作数中的任何一个非零,则条件变为真。 | (A ΙΙ B)结果为:true |
! | 逻辑非运算符。用于反转其操作数的逻辑状态。 如果条件为真,则口逻辑NOT运算符将为false。 | !(A && B)结果为:true |
6、条件三元运算符(?😃
int a = 2, b = 8;
int result = 0;
result = a > b? a : b; //判断a>b,真就执行?后面(a)赋值给result,假就执行:后面(b)赋值给result。