1. 基本类型存储了实际的数值,而并非指向一个对象的引用,所以在为其赋值的时候,其实是直接将堆栈上的内容复制到堆栈上的另一个地方。
2. 一元减号用于转变数据的符号,而一元加号只是为了与一元减号相对应,他唯一的作用就是将较小类型的操作数提升为int。
public class Test {
public static void main(String[] args) {
byte a = 1; // 正确
byte b = (byte)+a; // 正确
int c = +a; // 正确
byte d = +a; // 错误
}
}
3. equals()的默认行为是比较引用,不过大多数Java类型都实现了equals方法,以便用来比较对象的内容,而非比较对象的引用。
class Value {
int i;
}
public class Test {
public static void main(String[] args) {
Value v1 = new Value();
Value v2 = new Value();
v1.i = v2.i = 100;
System.out.println(v1.equals(v2)); //(1)flase
System.out.println(v1 == v2); //(2)false
}
}
4. 如果对基本类型做算术运算或位运算,只要类型比int小(char、byte、short),那么在运算前,这些值就会自动转换成int。
表达式中最大的数据类型决定了表达式最终结果的类型。