分类:
算术运算符,关系运算符,布尔运算符,位运算符,赋值类运算符,字符串连接运算符,条件运算符。
1.算术运算符:
+ | 求和 |
- | 相减 |
* | 乘积 |
/ | 商 |
% | 求余数【取模】 |
++ | 自加1 |
-- | 自减1 |
注意:一个表达式当中有多个运算符,运算符有优先级,不确定的加小括号,优先级得到提升。
public class DataTypeTest {
public static void main(String[] args) {
int k =10 ;
k ++;
System.out.println(k);
int l = k++ ;
System.out.println(l);
int y = 20 ;
--y;
System.out.println(y);
}
}
++ 、 -- 可以在变量前,也可以在变量后。
赋值中用++,++在后,先赋值再对变量中保存的值进行自加。++在前先加再做赋值运算
2.关系运算符:
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
= | 赋值运算符 |
注意:关系运算符的运算原理是比较变量中的值之间的大小比较。
3.逻辑运算符:
& | 与 |
| | 或 |
!(单目运算符) | 非 |
^(两边不一样true,两边相同false) | 异或 |
&& | 短路与 |
|| | 短路或 |
逻辑运算符要求两边的算子都是布尔类型,并且逻辑运算的最终结果也是一个布尔类型
短路现象:短路与 与 的运算结果相同
短路或 或 的运算结果相同
只不过短路与和短路或存在短路现象。
int x = 10 ;
int a = 20 ;
System.out.println(x<a & ++x<a);
System.out.println(x>a && ++x<a);
System.out.println(x);
**注意:短路与在评价完第一个表达式之后,如果运算出结果,就不会执行符号后的内容
4.赋值类运算符:
赋值类运算符分为两种:*基本的赋值运算符 =
*扩展的赋值运算符 +=,-=,*=,/=,%=
int i = 20;
i = i+5 ;
i += 5;
System.out.println(i); //30
注意:b +=5 是可以的,但是 b = b+5 不可以,从大范围转换到小范围是不可以的。
所以 b+= 5 和 b = b +5 不一样,b+=5 等同于 b = (byte)b+5
结论:扩展运算符不改变原有的数据运算类型。
5.关于java中的“+”运算符:
当+运算符两边都是数字的话,一定是加法运算,当“+”两边有一边是字符串,一定会进行字符串连接运算,并且得到一个字符串类型。
在一个表达式中可以同时添加多个“+”,遵循左向右的加法原则。
6.三元运算符/三目运算符/条件运算符:
语法规则: 布尔表达式 ? 表达式1 :表达式2
原理: 在布尔表达式为true时,执行表达式1,否则执行表达式2
运算结束后是一个值,不能单独来写,需要重新赋给变量
boolean sex = true;
char c = sex ? 'n': 'v';
System.out.println(c);