运算符基本有:算数运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符
算术运算符:
| 算术运算符 | 含义 |
| + | 加法运算、字符串连接、正数 |
| - | 减法运算、负数 |
| * | 乘法运算、通配符 |
| / | 除法运算(求商数) |
| % | 除法运算(取模、取余) |
| ++ | 自加一 |
| -- | 自减一 |
在运算中++比较特殊
例如:
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