JavaSE第五步 —— 运算符
一、运算符
运算符的分类不尽相同,以下都是参考的相关书籍
| 名称 | 符号 | |
|---|---|---|
| 算数运算符 | 一元运算符 | ++ 、 -- |
| 算术运算符 | 二元运算符 | +、-、*、/、% |
| 赋值运算符 | = | |
| 扩展运算符 | +=、-=、*=、/= | |
| 关系运算符 | >、<、=、>=、<=、==、!=、instanceof | |
| 逻辑运算符 | &&、 | |
| 位运算符 | &、 | |
| 条件运算符 | 三目运算符 | ?: |
| 字符串连接符 | + |
二、算术运算符
二目运算符:+,-,*,/,%属于二元运算符。%是取模运算符,即求余数操作。
一目运算符:算术运算符中++(自增),--(自减)属于一元运算符。
a = a++,先赋值再加1
a = ++a,先加再赋值
自减符号--以此类推,也可以看成谁离等号近就先执行谁的操作,就近原则
二元运算符的规则:
整数运算:
①、如果两个操作数有一个为long, 则结果也为long。
②、没有long时,结果为int。即使操作数全为short,byte,结果也是int。
浮点运算:
①、两个数如果有一个为double,那么结果就是double
②、两个数均为float类型时,结果方为float
取模运算:
①、数可以为浮点数,一般使用整数,结果是“余数”,“余数”符号和左边操作数相同,如:7%3=1,-7%3=-1,7%-3=1。
三、赋值和扩展运算符
| 运算符 | 用法举例 | 等价表达式 |
|---|---|---|
| += | a+=b | a = a+b |
| -= | a-=b | a = a-b |
| *= | a *= b | a = a*b |
| /= | a/=b | a = a/b |
| %= | a%=b | a = a%b |
四、关系运算符
关系运算符用来进行比较运算。关系运算的结果是布尔值:true/false;
| 运算符 | 含义 | 示例 |
|---|---|---|
| == | 等于 | a==b |
| != | 不等于 | a!=b |
| > | 大于 | a>b |
| < | 小于 | a<b |
| >= | 大于或等于 | a>=b |
| <= | 小于或等于 | a<=b |
注意的点
=是赋值运算符,而真正的判断两个操作数是否相等的运算符是==。==、!=是所有(基本和引用)数据类型都可以使用。>、>=、<、<=仅针对数值类型(byte/short/int/long,float/double 以及char)
五、逻辑运算符
短路与和短路或采用短路的方式。从左到右计算,如果只通过运算符左边的操作数就能够确定该逻辑表达式的值,则不会继续计算运算符右边的操作数,提高效率。
短路与:一假则假,如果左边的结果为假,则不需要检查右边的结果
短路或:一真则真 如果左边的结果为真,则不需要再次检查右边的结果
六、位运算符
位运算指的是进行二进制位的运算。
| 位运算符 | 说明 |
|---|---|
| ~ | 取反 |
| & | 按位与 |
| | | 按位或 |
| ^ | 按位异或 |
| << | 左移运算符,左移1位相当于乘2 |
| >> | 右移运算符,右移1位相当于除2取商 |
七、字符串连接符
+运算符两侧的操作数中只要有一个是String类型,系统会自动将另一个操作数转换为字符串然后再进行连接。
八、三目运算符
count >=0
string a = 0 == count ?"你好,这是咱们第一次见面":"老朋友好久不见"
x为 boolean 类型表达式,先计算 x的值,若为true,则整个运算的结果为表达式y的值,否则整个运算结果为表达式z 的值。

浙公网安备 33010602011771号