1、算术运算符
| 运算符 | 含义 | 表达式 |
| + | 加 | 1+1 |
| - | 减 | 1-1 |
| * | 乘 | 1*2 |
| / | 除 | 2/1 |
| % | 取余 | 5%2 |
2、赋值运算符
即= 表示将右边的值赋给左边的变量
即
int i ;
i= 1;
| 运算符 | 含义 | 表达式 |
| += | x = x+y | x+=y |
| -= | x = x-y | x - =y |
| *= | x = x*y | x*=y |
| /= | x = x/y | x /=y |
| %= | x = x%y | x %=y |
代码示例
public class Main {
public static void main(String[] args) {
int x,y;
x=9;
y=10;
System.out.println("'x+=y' ="+ (x+=y));
}
}
代码结果如下:
![]()
3、关系运算符
| 运算符 | 含义 | 表达式 | 运算结果 |
| > | 大于 | 5>3 | true |
| < | 小于 | 'f'<'a' | true |
| >= | 大于或等于 | 5.6>=3.2 | true |
| <= | 小于或等于 | 'A'>=65 | true |
| == | 等于 | ‘A’==65 | true |
| != | 不等于 | ‘A’ !=65 | false |
运算结果是boolean型,一般运用在循环语句中的循环条件
4、逻辑运算符
| 运算符 | 含义 | 表达式 | 运算结果 |
| && | 与,并且 | 5>3&&2>1 | true |
| || | 或者 | 5>3||2>1 | false |
| ! | 非 | !true | false |
&&
与,其实就是表示当他链接的两个值都为真时为真,其他时候都是假
||
或,两者中有一为真则为真,在java中常用 a>90||a<50,表示找一个大于90或者小于50的值
!
非就是反
5、位运算符
| 运算符 | 含义 |
| & | 按位与 |
| | | 按位或 |
| ^ | 按位异或 |
| ~ | 按位取反 |
| << | 左移位 |
| >> | 右移位 |
| >>> | 无符号右移位 |
1、&
直接来观察代码
public class Main {
public static void main(String[] args) {
int x,y;
x=9;
y=10;
System.out.println("'x&y' ="+ (x&y));
}
}
既然是按位与也就是将数字转换为二进制数在此代码中也就是
9 =1001 10 = 1010在&运算之后就是1000 也就是8
查看代码结果

2、|按位或
也是一样直接看代码(我并不会将代码更改大部分,这里只是想要去理解如何算,而不是去大量计算)
public class Main {
public static void main(String[] args) {
int x,y;
x=9;
y=10;
System.out.println("'x|y' ="+ (x|y));
}
}
已知:1001 ,1010则结果为11(1|0 = 1 ,0|1 = 1, 1|1 = 1 ,0|0 =0)
查看代码结果

3、按位或^
这里的^ 跟前面的||很像但是是按位运算(1|1 = 0,0|0 = 0 ,1|0 = 1, 0|1 = 1)
public class Main {
public static void main(String[] args) {
int x,y;
x=9;
y=10;
System.out.println("'x^y' ="+ (x^y));
}
}
结果如下:

4、按位取反~
public class Main {
public static void main(String[] args) {
int y;
//x=9;x,
y=10;
System.out.println("'~y' ="+ (~y));
}
}
结果如下:
![]()
5、右移位,左移位,无符号右移位
代码示例如下
public class Main {
public static void main(String[] args) {
int y;
//x=9;x,
y=10;
System.out.println("'y<<1' ="+ (y<<1));
System.out.println("'y>>1' = "+ (y>>1));
System.out.println("'y>>>1' = " + (y>>>1));
}
}
无符号和正常右移位的唯一不同是不考虑原数的正负
代码结果如下:

6、三元运算符
三元运算符就是?
语法如下:
逻辑表达式 ? 表达式1 : 表达式2
代码示例如下:
public class Main {
public static void main(String[] args) {
int x,y,i;
x=9;
y=10;
i =x>y?++x:++y;
System.out.println(y);
System.out.println(x);
System.out.println(i);
}
}
结果如下:

为啥呢,因为这里的x>y为false所以会实现y++ 所以会出现y = y+1 所以等于11
所以 i =11
7、自增自减运算符
而自增自减其实就是 ++y 其实就是y = y+1 而且是先加后用 也就是输出是y +1 而不是y 。y++ 是先输出y后变为y+1
代码示例如下
public class Main {
public static void main(String[] args) {
int x,y,i;
x=9;
y=10;
System.out.println(x++);
System.out.println(++y);
}
}
结果如下:

也从侧面证明了 y ++是先用后加 ,++y是先加后用
8、运算符的优先级
运算符的越高越优先执行
下面是顺序
| 运算符 | 优先级 | 描述 | 结合性 |
| []().,; | 1 | 分隔符 | 无 |
| ++ -- ! | 2 | 自增,自减,逻辑非 | 从右到左 |
| * / % | 3 | 算术乘除取余运算 | 从左到右 |
| + - | 4 | 算术加减 | 从左到右 |
| >> << >>> | 5 | 移位运算 | 从左到右 |
| < <= > >= | 6 | 大小关系运算 | 从左到右 |
| == != | 7 | 相等关系运算 | 从左到右 |
| & | 8 | 按位与运算 | 从左到右 |
| ^ | 9 | 按位异或运算 | 从左到右 |
| | | 10 | 按位或运算 | 从左到右 |
| && | 11 | 逻辑与运算 | 从左到右 |
| || | 12 | 逻辑或运算 | 从左到右 |
| ?: | 13 | 三元运算 | 从左到右 |
| = | 14 | 赋值运算 | 从右到左 |
其实优先级不需要怎样去牢记,只是要在解决问题去解决正常情况下都可以使用()来解决问题因为这样才是最符合逻辑的










![[Java基础揉碎]枚举](https://img-blog.csdnimg.cn/direct/34318677e47646f18df6ea962264fd06.png)








