变异知识点
char类型无法直接转换成byte或short,但可以利用强制类型转换
float和long类型的数据要在数值后面+F/f +L/l
&&(逻辑与)和&(短路与)的区别
&&:可能不会判断所有条件
&:一定会判断所有条件
==和equals的区别
在object类的方法中,==和equals是等效的,是判断两者的地址是否相等
在String类中,重写了equals方法,首先判断值的类型,若是基本数据类型,判断值是否相等,若是引用数据类型,则比较地址是否相等
源码展示:
Object类
public boolean equals(Object obj) {
return (this == obj);
}
String类
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
Switch在判断字符串时,会默认进行数值的比较,相当于String类的equals()方法
不使用第三方变量,完成对两个整数变量的值进行互换
- 使用异或,同一变量跟另一变量异或两次等于自己本身
- 使用加减
//异或
a = a^b;
b = a^b;
a = a^b;
//加减
a = a+b;
b = a-b;
a = a-b;
Switch()括号总可以使用哪几种类型:byte、short、int、char、enum、String
字符串连接的几种方法
- +号连接
- concat()连接
- StringBuffer/StringBuilder可变字符串
- append()方法连接
栈:先进后出
基本数据类型的变量
引用数据类型的地址