一.常见运算符分类
|
运算符 | |
|
算术运算符 |
+ 表示加法运算符,- 表示减法运算符,* 表示乘法运算符,/ 表示除法运算符,% 表示取模/取余运算符 |
|
关系(比较)运算符 |
> 表示是否大于运算符 ,>= 表示是否大于等于运算符,< 表示是否小于运算符 ,<= 表示是否小于等于运算符,== 表示是否等于运算符, != 表示是否不等于运算符 |
|
逻辑运算符 |
&& 表示逻辑与运算符,相当于"并且",同真为真,一假为假, || 表示逻辑或运算符,相当于"或者",一真为真,同假为假, ! 表示逻辑非运算符,相当于"取反",真为假,假为真。 |
|
赋值运算符 |
• = 表示赋值运算符,用于将=右边的数据赋值给=左边的变量,覆盖变量原来的数值。 • 赋值表达式本身也有值,其本身之值即为所赋之值。 • +=、 -=、*=、 /=、 ... |
|
位运算符 |
• & 表示按位与运算符,按照二进制位进行与运算,同1为1,一0为0. • | 表示按位或运算符,按照二进制位进行或运算,一1为1,同0为0. • ~ 表示按位取反运算符,按照二进制位进行取反,1为0,0为1. • ^ 表示按位异或运算符,按照二进制位进行异或运算,同为0,不同为1. |
|
移位运算符 |
• << 左移运算符,用于将数据的二进制位向左移动,右边使用0补充 • >> 右移运算符,用于将数据的二进制位向右移动,左边使用符号位补充 • >>> 表示逻辑右移运算符,用于将数据的二进制位向右移动,左边使用0 补充。 |
|
三元运算符 | 判断条件表达式是否成立,若成立则执行表达式1,否则执行表达式2 |
|
自增减运算符 |
• ++ 表示自增运算符,用于使得当前变量自身的数值加1的效果 • -- 表示自减运算符,用于使得当前变量自身的数值减1的效果 • 只能用于变量,常数不可以 |
二.运算符优先级及注意事项
(提示:括号优先级极高,=的优先级较低。若无法确认优先级,则使用括号来确保即可。)
|
运算符 |
执行顺序 |
优先级 |
|
()、[]、{} |
从左向右 |
1 |
|
!、+(正)、-(负)、~、++、-- |
从右向左 |
2 |
|
*、/、% |
从左向右 |
3 |
|
+、- |
从左向右 |
4 |
|
«、»、>>> |
从左向右 |
5 |
|
<、<=、>、>= |
从左向右 |
6 |
|
==、!= |
从左向右 |
7 |
|
& |
从左向右 |
8 |
|
^ |
从左向右 |
9 |
|
| |
从左向右 |
10 |
|
&& |
从左向右 |
11 |
|
|| |
从左向右 |
1 |
三.易混知识点
1.表达式i++,i--
int i=10;
表达式i++ 相当于 先把i的值复制给表达式i++ ,然后i自身加一.
System.out.println(i++ );//10
System.out.println(i );//11
(注:i++与i--类似不再重复)
2.表达式++i,--i
int i=10;
表达式++i 相当于 先把 i自身加一,然后i的值复制给表达式i++.
System.out.println(++i );//11
System.out.println(i );//11
(注:++i与--i类似不再重复)
3.编译器优化
两个byte字节类型的数值相加后类型默认变为int类型(编译器优化)。
4.位运算符记得转换成二进制计算
System.out.println(13&17);// 1 00001101&00010001
System.out.println(8&12);// 8 00001000 & 00001100
11万+

被折叠的 条评论
为什么被折叠?



