java运算符
运算符分类
运算符指明对操作数的运算方式。组成表达式的Java操作符有很多种。
- 运算符按照其要求的操作数数目来分,可以有单目运算符、双目运算符和三目运算符,它们分别对应于1个、2个、3个操作数。
- 运算符按其功能来分,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。
1.单目
- 单目:~(按位取反)、! (取非)、-(负号运算符)、 ++(自增)、 - -(自减)
2.双目
- 双目 + - * / %(取余)
3.三目
- 三目:a>b?true:false 说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式或者是值或者是对象。
1.算数运算符
- 加 +
- 减 -
- 乘 *
- 除 /
整数做除运算时只能求商
- 取模 %
- 与 &
按位将参与运算的数字转换为二级制数,相同位数进行与运算,全1为1,否则为0
System.out.println( 5 & 8);//结果为0
/*
*0101 5
*1000 8
*0000 0
*/
- 或 |
将参与运算的数字转换为二级制数,相同位数进行或运算,有1则1,否则为0
System.out.println(19 | 10);//结果为27
/*
* 10011 19
* 01010 10
* 11011 27
*/
- 异或 ^
将参与运算的数字转换为二级制数,相同位数进行异或运算,不同为1,否则为0
System.out.println(19 ^ 10);//结果为25
/*
* 10011 19
* 01010 10
* 11001 25
*/
2.关系运算符
运算的结果为boolean类型 (true或fales)
- 等于符号:==
- 不等于符号:!=
- 大于符号:>
- 小于符号:<
- 大于等于符号:>=
- 小于等于符号:<=
- ! 取反
3.逻辑运算符
运算结果为boolean类型(true或fales)
- 与 &
- 或 |
- 异或 ^
- 短路运算符
-
- 短路与 &&
若&&左边的表达式为false则不再执行右边的表达式
- 短路与 &&
-
- 短路或||
若||左边的表达式为true则不再执行右边的表达式
- 短路或||
4.赋值运算符
= 等号右边赋值给等号左边
- +=
a += b 等同于 a = a+b
- -=
- *=
- /=
- %=
- &=
- |=
- ^=
5.自增与自减
- ++ i 先自增,再运算
- i ++先运算,再自增
- –i 先自减,再运算
- i - - 先运算,再自增
6.位运算
只能进行整数运算,将符号左边的数转换为二级制数,移动符号右边的位数
-
带符号右移
int a = 10;
System.out.println(a >> 2 );
/*
* 1010 10
* 0010 2
*/
- <<带符号左移
- (>>>无符号右移)