运算符
运算符指明对操作数的运算方式。组成表达式的Java操作符有很多种。运算符按照其要求的操作数数目来分,可以有单目运算符、双目运算符和三目运算符,它们分别对应于1个、2个、3个操作数。运算符按其功能来分,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。
算数运算符
单目:
~(按位取反)、! (取非)、-(负号运算符)、 ++(自增)、 - -(自减)
双目:
+(加)、 -(减)、 *(乘)、 /(除)、 %(取余)
三目:
a > b ? true : false
说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式或者是值或者是对象。
例:
int a = 0;
int b = 1;
// 这个代码的作用是比较 a 和 b 的大小并将较大的数的值赋给 c
int c = a > b ? a : b;
三目运算符也可以看成一个简单的if else语句
关系运算符
等于符号:==,不等于符号:!= ,大于符号:>, 小于符号:<,大于等于符号:>= ,小于等于符号:<= 。
位与逻辑运算符
位运算符:
与(&)
&:双目运算符,运算时均把运算数转换为二进制再做比较,规则:当相同的位上均为1时结果为1,否则结 果为0.如:1010&1101,转为二进制:1111110010&10001001101,比较结果为:1000000转为十进制: 64。所以1010&1101=64;
或(|)
| :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110
非(~)
~:0变1,1变0
异或(^)
:两边的位不同时,结果为1,否则为0.如11001010=0110
逻辑运算符
与(&&):与运算符两边的条件都为真时,结果为真,否则为假
非(!):在条件语句前加非运算符,表示不为条件结果
或(||):或运算符两边的条件语句只要有一个为真,结果为真
赋值运算符
= :将等号右边的值或变量赋给左边
+=(其余与它相似):
int a = 0;
a += 1; // 这句相等于 a = a + 1;
-=、 *=、 /=、 %=等等
位移运算符
<< 带符号左移 int a = 2 << 1 `:将2左移一位等于将2乘以2^1
>>带符号右移 ,如果是正数则在高位补零,负数则补1结果除以2的移的位数次方
>>> 无符号右移,在高位补零结果同上