1. 赋值运算符
符号 | 作用 | 说明 |
---|---|---|
= | 赋值 | int a=10,将10赋值给变量a |
+= | 加后赋值 | a+=b,将a+b的值给a |
-= | 减后赋值 | a-=b,将a-b的值给a |
*= | 乘后赋值 | a*=b,将a*b的值给a |
/= | 除后赋值 | a/=b,将a/b的商给a |
%= | 取余后赋值 | a%=b,将a/b的余数给a |
- 注意事项:+=,-=,*=,/=,%=隐含了强制类型转换,强转成什么就看左边的变量是什么类型的。
例如:
short s = 1;
s + = 1;
//等同于s =(short) (s + 1);
- 注意float f = 1.0 会报错,因为右边是double类型的数据,double > float,需要强转。
- 而short s = 1不会报错,虽然右边是int类型,但是不涉及小数,1也没有超过short的取值范围【-2 ^15 , 2 ^15-1】,所以可以直接赋值。而s=1+1也不会报错,因为2也没有超过short的取值范围。
- 所以,只要没有变量,没有小数,且在取值范围内,就可以直接赋值。
2. 关系运算符(比较运算符)
符号 | 说明 |
---|---|
== | a==b,判断a和b的值是否相等,成立为true,不成立为false |
!= | a!=b,判断a和b的值是否不相等,成立为true,不成立为false |
> | a>b,判断a是否大于b,成立为true,不成立为false |
>= | a>=b,判断a是否大于等于b,成立为true,不成立为false |
< | a<b,判断a是否小于b,成立为true,不成立为false |
<= | a<=b,判断a是否小于等于b,成立为true,不成立为false |
- 注意事项:关系运算符的结果都是boolean类型的,所以要么是true,要么是false。“==”是判断值是否相等,“=”是赋值。
3. 逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
& | 逻辑与 | 并且,两边都为真,结果才为真,两边都要满足 |
| | 逻辑或 | 或者,两边都为假,结果才是假,两边满足一个就行 |
^ | 逻辑异或 | 两边相同为false,两边不同为true,类似去民政局结婚 |
! | 逻辑非 | 取反,注意要么写一次,要么不写。便于理解,不能写多次 |
4. 短路逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
&& | 短路与 | 结果和&相同,但具有短路效果 |
|| | 短路或 | 结果和|相同,但具有短路效果 |
- 注意事项:
- &和|,无论左边是true还是false,右边都要执行
- &&和||,如果左边能确定整个表达式的结果,右边不执行
- &&:左边为false,右边不管是真是假,整个表达式的结果已经确定,为false
- ||:左边为true,右边不管是真是假,整个表达式的结果已经确定,是true。
综上:&&和||能提高程序的运行效率,常用的逻辑运算符是&&,||,!
5. 三元运算符
格式:关系表达式?表达式1:表达式2
注意事项:
整个三元表达式的结果必须要被使用。
计算规则:
- 首先计算关系表达式的值
- 如果值为true,表达式1的值就是这个三元表达式的运算结果
- 如果值为false,表达式2的值就是这个三元表达式的运算结果
6. 运算符的优先级
优先级 | 运算符 |
---|---|
1 | .、()、{} |
2 | !、~、++、– |
3 | *、/、% |
4 | +、- |
5 | <<、>>、>>> |
6 | <、>、<=、>=、instanceof |
7 | ==、!= |
8 | & |
9 | ^ |
10 | | |
11 | && |
12 | || |
13 | ? : |
14 | =、+=、-=、*=、/=、%=、&= |
- 记住()优先级最高。
- 以后想要谁优先计算,就给谁加()
例如:
a +(b * c);
//想要b * c优先计算,就给他加()
idea快捷键:
ctrl+d,复制当前光标所在的一行
ctrl+alt+l,自动格式化代码(自动对齐)