一、java运算符
1. 算术运算符
| 符号 |
含义 |
例子 |
结果 |
+ |
加法 |
int a = 5 + 3; |
a = 8 |
- |
减法 |
int b = 5 - 3; |
b = 2 |
* |
乘法 |
int c = 5 * 3; |
c = 15 |
/ |
除法 |
int d = 5 / 3; |
d = 1 |
% |
取余 |
int e = 5 % 3; |
e = 2 |
++ |
自增 |
int f = 5; f++; |
f = 6 |
-- |
自减 |
int g = 5; g--; |
g = 4 |
// ++ -- 自增 自减 一元运算符
int a = 3;
int b = a++;
int c =++a;
System.out.println(a);//a=5
System.out.println(b);//b=3
System.out.println(c);//c=5
//int a = 3; 初始化a,a=3
//int b = a++ 相当于b = a;后a = a+1(a自增)。即b=3,a=3+1=4 加号在后,先赋值后自增
//int c =++a 相当于a = a+1(a自增)=4+1=5,后int c = a =5 加号在前,先自增后赋值
2. 赋值运算符
| 符号 |
含义 |
例子 |
等价于 |
= |
直接赋值 |
int a = 5; |
- |
+= |
加后赋值 |
a += 3; |
a = a + 3; |
-= |
减后赋值 |
a -= 3; |
a = a - 3; |
*= |
乘后赋值 |
a *= 3; |
a = a * 3; |
/= |
除后赋值 |
a /= 3; |
a = a / 3; |
%= |
取余后赋值 |
a %= 3; |
a = a % 3; |
&= |
按位与后赋值 |
a &= 3; |
a = a & 3; |
|= |
按位或后赋值 |
a |= 3; |
a = a | 3; |
^= |
按位异或后赋值 |
a ^= 3; |
a = a ^ 3; |
<<= |
左移后赋值 |
a <<= 2; |
a = a << 2; |
>>= |
右移后赋值 |
a >>= 2; |
a = a >> 2; |
3. 关系运算符
| 符号 |
含义 |
例子 |
结果 |
== |
等于 |
5 == 3 |
false |
!= |
不等于 |
5 != 3 |
true |
instanceof |
检查对象类型 |
String s = "abc";
s instanceof String |
true |
> |
大于 |
5 > 3 |
true |
< |
小于 |
5 < 3 |
false |
>= |
大于等于 |
5 >= 3 |
true |
<= |
小于等于 |
5 <= 3 |
false |
4. 逻辑运算符
| 符号 |
含义 |
例子 |
结果 |
&& |
逻辑与 |
(5 > 3) && (2 < 4) |
true |
|| |
逻辑或 |
(5 < 3) || (2 < 4) |
true |
! |
逻辑非 |
!(5 > 3) |
false |
public static void main(String[] args) {
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d); //d = false
System.out.println(c); //c = 5,因为c<4已经为false,所以c++不会执行
}
5. 位运算符
| 符号 |
含义 |
例子(a=5 二进制 0101,b=3 二进制 0011) |
结果(二进制) |
& |
按位与 |
a & b |
0001 → 1 |
| |
按位或 |
a | b |
0111 → 7 |
^ |
按位异或 |
a ^ b |
0110 → 6 |
~ |
按位取反 |
~a |
1010 → -6 |
<< |
左移 |
a << 2 |
010100 → 20 |
>> |
右移 |
a >> 1 |
0010 → 2 |
>>> |
无符号右移 |
a >>> 1 |
0010 → 2 |
public class Demo06 {
public static void main(String[] args) {
//& 按位与, |按位或,^按位异或,~按位取非
/*
A = 0011 1100
B = 0000 1101
A&B 0000 1100 都为1才是1,否则为0
A|B 0011 1101 都是0才是0,否则为1
A^B 0011 0001 相同为0,否则为1
~B 1111 0010 对B取反
---------------------------------------
位运算效率高
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
"<<" 相当于*2
">>" 相当于/2
*/
System.out.println(2<<3); //2* 2*2*2
}
}
6. 条件运算符(三元运算符)
| 符号 |
含义 |
例子 |
结果 |
? : |
条件判断后赋值 |
int max = (5 > 3) ? 5 : 3; |
max = 5 |
public static void main(String[] args) {
//三元运算符 x ? y :z 如果x==true,则结果为y,否则为z
int score = 80;
String type = score<60 ? "不及格" : "及格";
System.out.println(type);
}
注:Java里没有2^3这种幂的表示方法。要表示幂需要使用工具类Math,Math里有很多方法
double pow = Math.pow(2,3);
运算符优先级(从高到低)
- 括号:
()
- 一元运算符:
++、--、+(正)、-(负)、!、~
- 算术运算符:
*、/、% → +、-
- 移位运算符:
<<、>>、>>>
- 关系运算符:
>、<、>=、<= → instanceof → ==、!=
- 位运算符:
& → ^ → |
- 逻辑运算符:
&& → ||
- 条件运算符:
? :
- 赋值运算符:
=、+=、-= 等。
使用括号 () 可以明确指定运算顺序,提高代码可读性。
注意:
public class Demo07 {
public static void main(String[] args) {
//字符串连接符"+"
int a = 10;
int b = 20;
System.out.println(""+a+b);//输出结果:1020
System.out.println(a+b+"");//输出结果:30
}
二、新建package(包)
![image]()