JAVA提供了丰富的运算符,如算术运算符、关系运算符、逻辑运算符、位运算符等等。
一:算术运算符
1.加减运算符:加减运算符是二目运算符,即连接两个操作元的运算符。运算结合方向是从左到右。操作类型:整形、浮点型数据。优先等级:四级。
2.乘除和求余运算符:乘除和求余的运算符*、/、%是二目运算符,运算结合方向是从左到右。操作类型是整形或浮点型数据。优先等级:三级。
3.自增自减运算符:自增自减运算符++、--是单目运算符。可放在操作元之前,也可放在操作元之后。操作元必须是一个整形或浮点型变量,作用是使自变量的值增1或者减1,
++x(--x)表示在使用x之前,先使x的值增(减)1。
x++(x--)表示在使用x之后,在对x执行x=x+1。
二者是不同的
++;--位于变量前,则先对变量进行运算,再返回表达式的值;位于变量后,则先返回表达式的值,再对变量进行运算;
4.算数混合运算的精度
精度从低到高的排列顺序是:byte、short、char、int、long、float、double
整数运算规则:1.如果两个操作数有一个是long,则结果是long。
2.没有long时,结果是int。即使操作数全为short、byte。结果也为int。
浮点运算规则:1.如果两个操作数有一个是double,则结果为double。
2.只有两个操作数都float,结果才为float.
用算数运算符和括号连接起来的符合JAVA语法规则的式子,称为算数表达式。
二:复合赋值运算
赋值运算“=”是二目运算符,左边的操作元必须是一个变量,不能是常量或表达式。运算结合方向:从右到左;优先等级:14级。
注:“=”表示赋值于,“==”表示等于;例如:2=2是非法的表达式,而2==2是true.
运算符 | 含义 | 范例 | 结果 |
---|---|---|---|
= | 赋值 | a=1;b=6 | a=1;b=6 |
+= | 加等于 | a=1;b=6;a+=b | a=7;b=6 |
-= | 减等于 | a=1;b=6;a-=b | a=-5;b=6 |
*= | 乘等于 | a=1;b=6;a*=b | a=6;b=6 |
/= | 除等于 | a=1;b=6;a/=b | a=0;b=6 |
%= | 余等于 | a=1;b=6;a%=b | a=6;b=6 |
三:关系运算
关系运算是二目运算符,作用:用来比较两个值的关系。关系运算的结果是布尔型,结果为true/false。
运算符 | 含义 | 示例 |
---|---|---|
== | 等于 | a==b |
!= | 不等于 | a!=b |
> | 大于 | a>b |
< | 小于 | a<b |
>=。0 | 大于或等于 | a>=b |
<= | 小于或等于 | a<=b |
- ==以及!=也可以对引用类型进行运算,比较是否是同一个对象; 比较的是地址
四:逻辑运算
- 位运算符针对操作数的二进制位进行运算;
- 15的二进制是00001111, 6的二进制是00000110
&:全真为真,有一个是假就是假
|:全假为假,只要有一个为真 就是真
^:相同为假,不同为真
五:位运算符
(1)位运算符是对操作数以二进制比特位为单位进行操作和运算,操作数和结果都是整型数。
(2)如果操作的对象是char、byte、short,位移动作发生前其值会自动晋升为int,运算结果也是int。
运算符的结合性决定了并列的相同级别运算的先后顺序。
逻辑运算符
- 逻辑运算符有6个,针对布尔值或返回值为布尔值的表达式进行运算;
- 与-&和&&:两个操作数都是true时返回true,只要有一个false就返回false;
- 或-|和||:两个操作数只要有一个是true就返回true,只有两个都是false时返回false;
- 非-!:true变false,false变true;
- 异或-^:两个操作数不同返回true,两个操作数相同返回false;
&和&& &&表示短路与 或-|和|| || 表示短路或
六:三元运算符
- 条件运算符是唯一的一个三元运算符,它有三个表达式操作数(不是典型的两个操作数),使用下面的格式:
-
- 表达式1?表达式2:表达式3
在这个语句中,表达式1必须产生一个布尔值。如果表达式1的值为true,那么表达式2被计算。如果表达式值为false,那么表达式3被计算,并且整个表达式的值是有条件的。三元操作符与典型的if语句部分相似