Java运算符
算术运算符
+、-、*、/、%、++、--
除法算术运算符(/):两边都是整数时,结果保留整数部分,是一个整数;当一边为浮点数时,结果为浮点数。除数不能为0.
取余算术运算符(%):两边必须是整数,结果为相除的余数。
自增算术运算符(++):++在前,先加一再带入计算;++在后,先带入计算再对自身加1.
自减算术运算符(--):--在前,先减一再带入计算;--在后,先带入计算再对自身减一。
关系运算符
也称为比较运算符,包括:==、!=、>、<、>=、<=
位运算符
&、|、^、~、<<、>>、>>>
&和|的两个操作数可以是非同类型的。
按位与(&):有0为0,否则为
按位或(|):有1为1,否则为0
按位异或(^):不同为1,相同为0
按位取反(~):0变1,1变0
按位左移(<<):低位补0
按位右移(>>):高位补符号位
按位右移补零(>>>):高位补0
逻辑运算符
&&、||、!
&&和||都是短路逻辑运算符,即当&&前判断为false或者||前判断为true,则不再运算&&和||之后的条件式。
注意英文!和中文的!是不同的。
赋值运算符
=、+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=
赋值运算符除了=本身就是算术运算符或位运算符与=结合。
其它运算符
条件运算符
也称为三元运算符,根据布尔表达式的值判断取前后哪一个值。
variable x=(expression)?value if true:value if false
instanceof运算符
用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)
(Object reference variable) instanceof (class/interface type)
如果被比较的对象兼容于右侧类型,该运算符仍然返回true。
运算符的优先级
类别 | 操作符 |
后缀 | ()[].(点操作符) |
一元 | ++-!~ |
乘性 | */% |
加性 | +- |
移位 | >> >>> << |
关系 | > >= < <= |
相等 | == != |
按位与 | & |
按位异或 | ^ |
按位或 | | |
逻辑与 | && |
逻辑或 | || |
条件 | ?: |
赋值 | = |
逗号 | , |
最高优先级在表的最上面。
第一层:()、[]和点操作符.
第二层:一元操作符++、--、!、~
第三层:乘性(*、/和%优先),加性(+、-),移位(>>、>>>、<<),关系(>、>=、<、<=),相等(==、!=)
第四层:按位与&、按位异或^、按位或|、逻辑与&&、逻辑或||,优先级依次降低
第五层:条件(?:)、赋值=,逗号(,)优先级依次降低