Java基础之运算符
分类 | |
---|---|
算术运算符 | +,-,*,/,%,++,– |
赋值运算符 | =,+=,-=,*=,/=,%= |
关系运算符 | > 、 >= 、 < 、 <= 、 == 、 != |
逻辑运算符 | &,|,^,!,&&, |
三元运算符 | 数据类型 变量名 = (关系表达式) ? 结果1: 结果2; |
位运算符 | & 、| 、~ 、<<,>>,>>> |
算术运算符
+号的多种意义:
-
当+号的两边有一边是字符串时,进行的是字符串的拼接。
-
当+号的两边都是整数型时,进行数值的加法运算。
++,-- 的操作
单独运算时:++在前和++在后 最后的结果是一样的。
复合运算时:其他变量放在一起使用 或者和 输出语句放在一起使用 , 前++ 和 后++ 就产生了不同。
- ++在前:例如:++i,本身先加1,再参与运算。
- ++在后:例如:i++,本身先参与运算,运算结束后再加1。
– 和 ++ 用法一致。
赋值运算符
= | 符号右边的值赋值给左边的变量 |
+= | 符号左边变量的值和右边的值做加法运算,结果赋值给左边的变量 |
-= | 符号左边变量的值和右边的值做减法运算,结果赋值给左边的变量 |
*= | 符号左边变量的值和右边的值做乘法运算,结果赋值给左边的变量 |
/= | 符号左边变量的值和右边的值做除法运算,结果赋值给左边的变量 |
%= | 符号左边变量的值和右边的值做取余运算,结果赋值给左边的变量 |
补充:隐藏的强制类型转换
除 = 运算符外,其他的扩展后的赋值运算符在将最后的结果赋值给左边的变量前,都做了一步强
制类型转换。
public static void main(String[] args) {
int a = 3;
int b = 4;
a += b;
System.out.println(a);
short c = 5;
c += a; //编译不报错,JVM将结果进行了强制类型转换。转换short类型
//c = c + a; 编译报错,提示会精度丢失。
System.out.println(c);
}
关系运算符(比较运算符)
关系运算符 | 符号解释 |
---|---|
< | 比较符号左边的数据是否小于右边的数据,如果小于结果是true。 |
> | 比较符号左边的数据是否大于右边的数据,如果大于结果是true。 |
<= | 比较符号左边的数据是否小于或者等于右边的数据,如果大于结果是false。 |
>= | 比较符号左边的数据是否大于或者等于右边的数据,如果小于结果是false。 |
== | 比较符号两边数据是否相等,相等结果是true。 |
!= | 不等于符号 ,如果符号两边的数据不相等,结果是true |
- 比较运算符,是两个数据之间进行比较的运算,运算结果一定是boolean值 true 或者 false 。
逻辑运算符
符合 | ||
---|---|---|
& | 与,且 | 有false则false |
&& | 双与,短路与 | 有false则false |
| | 单 | 有true则true |
|| | 单或 | 有true则true |
! | 非 | 非false则true,非true则false |
^ | 异或 | 相同为false,不同则true |
&和&&的关系:
都表示与,且,但是&&当左边为false时,右边不执行,具有短路效果。&无论左边是什么,右边都会执行。
|和||的关系:
都表示或,但是||当左边为true时,右边不执行,具有短路效果,|无论左边是什么,右边都会执行。
三元运算符(三目运算符)
格式:
数据类型 变量名 = (关系表达式) ? 结果1:结果2;
运算过程:
关系表达式为true 将结果1赋值给变量名。
关系表达式为false 将结果2赋值给变量名。