1 前缀式和后缀式
对于前缀式 ++i
:
int num = 0;
int a = ++num; //a = 1; num = 1;
---------
(剖析)
num = num +1;
对于后缀式 i++
:
int num = 0;
int a = num++; //a = 0; num = 1;
---------
(剖析)
int temp = num;
num = num + 1;
int a = temp;
2 ==和equal
== 和 !=
- 基本类型:比较的是它们的值是否相等
- 引用类型:比较的是对象的引用是否相等(包装类型也是引用类型)
equal : equal 的默认行为也是比较引用
- 不适用于基本类型的比较
- 如果想要比较两个引用所对应的值,那么需要实现相应的 equal 方法。
- String 默认实现了 equal 方法,所以我们在比较字符串是否相等的时候可以直接使用 equal
3 && 和 &
规则:
对于:& -- > 只要左右两边有一个为false,则为false;只有全部都为true的时候,结果为true
对于:&& -- > 只要符号左边为false,则结果为false;当左边为true,同时右边也为true,则结果为true
eg:
if(str != null && !"".equals(str)){ // 1
//do something
}
if(str != null & !"".equals(str)){ // 2
//do something
}
- 第 1 种:
- 当
str != null
为false
时,那么!"".equals(str)
将不会执行(短路) - 当
str != null
为true
时才会执行!"".equals(str)
- 当
- 第 2 种:
- 不管
str != null
为true
还是false
,!"".equals(str)
都会被执行
- 不管