按照运算符功能来分,基本的运算符有下面几类。
算术运算符 +、-、*、/、%、++、–
关系运算符 >、<、>=、<=、==、!=
逻辑运算符 !、&&、||、&、| 、^
位运算符 >>、<<、>>>、&、|、^、~
赋值运算符 =、扩展赋值运算符,如+=、/=等。
条件运算符 ? :
其他运算符 包括分量运算符.、下标运算符[ ]、实例运算符 instanceof 、内存分配运算符new、 强制类型转换 运算符(类型)、方法调用运算符( )等。
java
算术运算符
+ - * / % +(取正) -(取负) ++ —
两个整数相“/”,结果为整数。对于两个整数之间的除法和 取模运算 ,则式子(a/b)*b+(a%b)==a是恒成立的。
对取模运算符“%”来说,其 操作数 可以为 浮点数 。即a % b与a-((int)(a/b)*b)的语义相同,这表示a % b的结果是除完后剩下的浮点数部分。如37.2%10=7.2。(默认双精度)
值得注意的是Java语言对加运算符进行了扩展,使它能够进行 字符串 的连接,如”abc”+”de”,得到字符串”abcde”。
关系运算符
>、<、>=、<=、==、!=
不能在浮点数之间作“==”的比较。
逻辑运算符
!、&&、||、&、|、^(异或)
逻辑运算和关系运算的关系非常紧密,关系运算的结果为布尔型,逻辑运算的操作数与运算结果都是布尔型。
简洁运算(&&、||短路)与非简洁运算(&、|)的区别在于:非简洁运算在必须计算完左右两个表达式之后,才取结果值;而简洁运算可能只计算左边的表达式而不计算右边的表达式,即对于&&,只要左边表达式为false,就不计算右边表达式,则整个表达式为false;对于||,只要左边表达式为true,就不计算右边表达式,则整个表达式为true。
java
位运算符和赋值运算符
位运算符: >>、<<、>>>、&、|、^、~
赋值运算符: =、扩展赋值运算符(+=等)
自动类型转换
右结合性
条件运算符和字符串运算符
条件运算符:表达式1 ? 表达式2 :表达式3
字符串运算符
字符串运算符“+”是以String为对象进行的操作。运算符“+”完成字符串连接操作,如果必要,则系统自动把操作数转换为String型。