一、算术运算符
二、关系运算符
三、逻辑运算符
四、赋值类运算符
五、字符串连接运算符
六、三目运算符
一、算术运算符 | |
---|---|
+ | 求和 |
- | 相减 |
* | 乘积 |
/ | 商 |
% | 求余数 |
++ | 自加1 |
-- | 自减1 |
注意:一个表达式当中有多个运算符,运算符有优先级,不确定的加小括号,优先级得到提升。
//++运算符在变量前先自增再运算
//++运算符在变量后先赋值再自增
//无论出现在前后,结果中变量的值一定会自加1。
1.++在变量前:
int m = 20;
int n = ++ m;
System.out.println(m);//21
System.out.println(n);//21
2.++在变量后:
int a = 100;
int b = a ++;
System.out.println(a);//101
System.out.println(b);//100
二、关系运算符 | |
---|---|
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
注意:1.=是赋值运算符,==是关系运算符
2.关系运算符的结果一定是布尔类型:true/false。
三、逻辑运算符 | |
---|---|
& | 逻辑与(两边都为true,结果才是true) |
| | 逻辑或(两边只要有一个为true,结果就是true) |
! | 逻辑非(取反,!false就是true) |
^ | 逻辑异或(只要两边算子不一样,结果就为true) |
&& | 短路与(第一个表达式执行结果为true,发生短路与) |
|| | 短路或(第一个表达式执行结果为false,发生短路或) |
注意: 1.逻辑运算符要求两边的算子都是布尔类型,并且最终结果也是布尔类型。
2.短路与(或)和逻辑与(或)最终的运算结果是相同的,只不过短路与(或)存在短路现象。短路后第二个表达式不会执行。
四、赋值类运算符 | |
---|---|
基本的赋值运算符 | = |
扩展的赋值运算符 | +=、-=、*=、/=、%= |
1.赋值类的运算符优先级:先执行等号右边的表达式,将执行结果赋值给左边的变量。
2.byte i = 10;
i += 5; 等同于:i = (byte)(i + 5); (+=:追加/累加)
3.扩展类的赋值运算符不改变运算结果类型。
long x = 10L;
int y =20;
y += x; 等同于:y = (int)(y+x);
五、字符串连接运算符。
1.“+”运算符在java语言中有两个作用:
-加法运算,求和
-字符串的连接运算
2.当“+”运算符两边的数据都是数字,一定是加法运算。
3.“+”运算符两边只要有一个是字符串,一定会进行字符串连接运算,运算后的结果还是一个字符串类型。
数字 + 数学 → 数字 (求和)
数字 + "字符串" → "字符串" (字符串连接)
4.当一个表达式中有多个“+”,且没有添加小括号的前提下,遵循自左向右的顺序依次运算。
String username = "rose";
System.out.println("登录成功,欢迎" + username +"回来");//登录成功,欢迎rose回来
String username = "Jack";
System.out.println("登录成功,欢迎" + username +"回来");//登录成功,欢迎Jack回来
六、三目运算符/三元运算符/条件运算符
-语法规则:布尔表达式 ? 表达式1 :表达式2
-当布尔表达式结果为true时,执行结果为表达式1。
当布尔表达式结果为false时,执行结果为表达式2。