一、运算符
运算符的分类不尽相同,以下都是参考的相关书籍
名称 | 符号 | |
---|---|---|
算数运算符 | 一元运算符 | ++ 、 -- |
算术运算符 | 二元运算符 | +、-、*、/、% |
赋值运算符 | = | |
扩展运算符 | +=、-=、*=、/= | |
关系运算符 | >、<、=、>=、<=、==、!=、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
的值。