java中有6种运算符,分别是赋值运算符、算术运算符、关系运算符、逻辑运算符、位运算符、条件运算符。
赋值运算符:
赋值运算符(=),用于给变量赋值。
可以结合算术运算符,组成复合赋值运算符。如+=、-=、/=、*=、%=
public static void main(String[] args){
//将10赋值给变量i
int i = 10;
int i1 = 0;
//a += b 等同于 a = a + b; 但是+=是一步操作,有可能发生强转
i1 += 10;
}
byte/short在使用+=/-=时不进行类型转换(类型提升)
算术运算符:
| 运算符 | 示例 | 说明 |
|---|---|---|
| + | 3+2 | 加法运算符,求两个操作数的和。 |
| - | 3-2 | 减法运算符,求两个操作数的差。 |
| * | 3*2 | 乘法运算符,求两个操作数的积。 |
| / | 3/2 | 除法运算符,求两个操作数的商。 |
| % | 3%2 | 取模运算符,求两个整数的余数。 |
| ++ | int a = 3;++a 或者 a++ | 自增运算符,a++相当于 a = a+1。 |
| -- | int a=3;--a 或者 a-- | 自减运算符,a--相当于 a = a-1。 |
++/--在前,先自增/自减再运算。++/--在后先运算再自增/自减
与字符串相加(拼接)
字符串+其他数据类型=字符串其他数据类型+字符串=字符串
关系运算符:
关系运算符也叫比较运算符,它的结果是boolean
| 运算符 | 含义 | 示例 | 说明 |
|---|---|---|---|
| 大于 | a>b | 如果a>b成立,结果为true,否则结果为false | |
| >= | 大于等于 | a>=b | 如果a>=b成立,结果为true,否则结果为false |
| < | 小于 | a<b | 如果a<b成立,结果为true,否则结果为false |
| <= | 小于等于 | a<=b | 如果a<=b成立,结果为true,否则结果为false |
| == | 等于 | a==b | 如果a==b成立,结果为true,否则结果为false |
| != | 不等于 | a!=b | 如果a!=b成立,结果为true,否则结果为false |
=是赋值运算符,而==是关系运算符
逻辑运算符:
& | ! && ||, 结果是 boolean
& : 与, 两个都为 true,结果才是 true
| : 或, 两个都为 false,结果才是 false
&& : 短路与,左边为 false,右边不执行,结果为 false
|| : 短路或,左边为 true,右边不执行,结果为 true
! : 非,取反,true 变为 false,false 变为 true
a && b 当 a 为 false 时,结果为 false。b 不执行
a || b 当 a 为 true 时,结果为 true。b 不执行
位运算符:
& | ^ ~ << >> >>>
位运算进行二进制运算
& : 与, 都为 1,结果为 1
| : 或, 有一个1,结果为1
^ : 异或, 相同为0,不同为1
~: 非,取反,1变0,0变1
<<: 左移, 低位补0, m << n = m * 2 ^n
>>:右移,高位补符号位,m >> n = m / 2 ^ n
>>>: 无符号右移,高位补0
条件运算符(三目运算符):
三目表达式:
布尔表达式 ? 表达式1 : 表达式2
如果布尔表达式为 true,则返回表达式1,否则返回表达式2