| + | 两数相加 |
| - | 两数相减 |
| * | 两数相乘 |
| / | 两数相除 |
| % | 取模,返回两数相除的余数 |
| ++ | 自加一 |
| - - | 自减一 |
public class User {
public static void main(String[] args) {
int a = 20;
int b = 10;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a \* b);
System.out.println(a / b);
System.out.println(b % a);
}
}
30
10
200
2
10
++,- -运算符
当++、- -出现在变量之前,先自加、自减1,再做赋值运算
public class User {
public static void main(String[] args) {
int a = 10;
int b = ++a;
System.out.println(a);// 11
System.out.println(b);// 11
}
}
当++,- -出现在变量之后,先做赋值运算,再自加、自减1
public class User {
public static void main(String[] args) {
int a = 10;
int b = a++;
System.out.println(b);// 10
System.out.println(a);// 11
}
}
扩展
+运算符有两个作用
①求和
public class User {
public static void main(String[] args) {
System.out.println(3 + 4);// 7
}
}
②字符串拼接
public class User {
public static void main(String[] args) {
System.out.println("Hello" + "Java" + "World");// HelloJavaWorld
}
}
关系运算符
运算符 | 描述 | 结果 |
---|---|---|
== | 判断值是否相等 | 是返回true,不是返回false |
!= | 判断值是否不相等 | 是返回trut,不是返回false |
>= | 判断左边的值是否大于等于右边 | 是返回true,不是返回false |
<= | 判断左边的值是否小于等于右边 | 是返回true,不是返回false |
> | 判断左边的值是否大于右边 | 是返回true,不是返回false |
< | 判断左边的值是否小于右边 | 是返回true,不是返回false |
public class User {
public static void main(String[] args) {
int a = 20;
int b = 10;
System.out.println(a == b);
System.out.println(a != b);
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a <= b);
System.out.println(a >= b);
}
}
false
true
true
false
false
true
逻辑运算符
运算符 | 描述 | 结果 |
---|---|---|
& | 与 | 两边都为True,结果才为True |
│ | 或 | 有一边为True,结果就为True |
! | 非 | 真值变假,假值变真 |
&& | 逻辑与 | 两边都为True,结果才为True |
││ | 逻辑或 | 有一边为True,结果就为True |
public class User {
public static void main(String[] args) {
boolean a1 = true;
boolean a2 = false;
System.out.println(a1 && a2);
System.out.println(a1 || a2);
System.out.println(!a1);
}
}
false
true
false
与&和逻辑与&&
public class User {
public static void main(String[] args) {
// 与&
int a = 0;
int b = 1;
// 当左边表达式为false,右边的表达式依旧会执行
System.out.println(a > b & b > a++);// false
System.out.println(a); // 1
// 逻辑与&&
int c = 0;
int d = 1;
// 当左边的表达式为false,右边的表达式不执行(短路现象)
System.out.println(c > d && d > c++);// false
System.out.println(c); // 0
}
}
或|和逻辑或||
public class User {
public static void main(String[] args) {
// 或|
int a = 0;
int b = 1;
// 当左边表达式为true,右边的表达式依旧会执行
System.out.println(a < b | b > a++);// true
System.out.println(a); // 1
// 逻辑或||
int c = 0;
int d = 1;
// 当左边的表达式为true,右边的表达式不执行(短路现象)
System.out.println(c < d || d > c++);// true
System.out.println(c); // 0
}
}
总结
与&和或|要对所有条件都进行判断(无论左边是真假,右边都会执行)
逻辑与 &&当左边的表达式为false,右边的表达式不执行
逻辑或 || 当左边的表达式为true,右边的表达式不执行
什么时候使用&&,什么时候使用&
从效率方面来说,&&比&的效率高一些。
因为与&不管第一个表达式结果是什么,第二个表达式一定会执行。
大部分情况下都建议使用短路与&&,只有当既需要左边表达式执行,又需要右边表达式执行的时候,才会选择与&。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!