运算符基本有:算数运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符
算术运算符:
算术运算符 | 含义 |
+ | 加法运算、字符串连接、正数 |
- | 减法运算、负数 |
* | 乘法运算、通配符 |
/ | 除法运算(求商数) |
% | 除法运算(取模、取余) |
++ | 自加一 |
-- | 自减一 |
在运算中++比较特殊
例如:
int a = 5; a = a++; System.out.print(a);//a=5 int a = 5; a = ++a; System.out.print(a);//a=6
参与 运算的时候,如果是a++,先赋值后运算,如果是++a,先运算 后赋值 。
赋值运算符:
运算符 | 运算规则 |
= | 赋值 |
+= | 加后赋值 |
-= | 减后赋值 |
*= | 乘后赋值 |
/= | 除整后赋值 |
%= | 取模后赋值 |
其中=为赋值,例如:int a = 100;//把100赋给变量a
只有变量才可以使用赋值运算符,常量不能进行赋值
剩下的运算符都是复合运算符,其中隐含了一个强制类型转换
例如 :
byte a = 8; byte b = 7; //b=a+b; 这种会报错 ,在 a+b 运算的时候会默认转换为int 类型的值 ,而变量b 是byte 类型 b +=b; //这个样系统就会正常运行 ,因为隐含了一个强制类型转换;
比较运算符:
运算符 | 运算规则 |
== | 相等于 |
!= | 不等于 |
< | 小于 |
> | 大于 |
>= | 大于等于 |
<= | 小于等于 |
逻辑运算符:
逻辑运算符 | 含义 |
&& 短路与(我理解的是:并且) | 1.如果两边值都是true,结果就是true;2.如果一边为false,结果就是false |
|| 短路或(我理解的是:或者) | 1.如果两边任意一边是true ,结果就为true,否则为false |
!取反(取非,“不是”) | 如果为false,结果就是true,反之则为false |
^ 异或 | 如果两边有且只有一个为true ,结果就是true,否则为false |
位运算符:
运算符 | 运算规则 |
& | 与 |
| | 或 |
^ | 异或 |
& : 1 & 0=0 1&1=1 0&0=0
| : 1|1=1 1|0=1 0|0=0
^ :1^0=1 0^0=0 1^1=0
一个数自己和自己异或得到的是0,任何数和0异或得到这个数本身,任何数和1异或得到的是这个数的相反
三目运算符:
a>8 ? (true值) : (false值)
?后必须跟有值
个人理解:如果a大于8就运行true,如果小于8就运行false。有点像if...else