按照运算符功能来分,基本的运算符有下面几类。
算术运算符 +、-、*、/、%、++、–
关系运算符 >、<、>=、<=、==、!=
逻辑运算符 !、&&、||、&、| 、^
位运算符 >>、<<、>>>、&、|、^、~
赋值运算符 =、扩展赋值运算符,如+=、/=等。
条件运算符 ? :
其他运算符 包括分量运算符.、下标运算符[ ]、实例运算符instanceof、内存分配运算符new、强制类型转换运算符(类型)、方法调用运算符( )等。
一、算术运算符
+ - * / % +(取正) -(取负) ++ –
两个整数相“/”,结果为整数。对于两个整数之间的除法和取模运算,则式子(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。
四、位运算符和赋值运算符
1.位运算符: >>、<<、>>>、&、|、^、~
2.赋值运算符: =、扩展赋值运算符(+=等)
赋值运算符特点:自动类型转换和右结合性
五、条件运算符和字符串运算符
1.条件运算符:表达式1 ? 表达式2 :表达式3
2.字符串运算符
字符串运算符“+”是以String为对象进行的操作。运算符“+”完成字符串连接操作,如果必要,则系统自动把操作数转换为String型。
float a=100.0; //定义变量a为浮点型
print(“The value of a is”+a+“\n”); //系统自动将a转换成字符串
String s1+=a;//s1=s1+a,若a非String型,自动转换为String型。