这个问题已经在这里有一个答案:
- 如何正确使用Java比较两个整数? 8个回答
我有以下代码:
public class Test {
public static void main(String[] args) {
Integer alpha = new Integer(1);
Integer foo = new Integer(1);
if(alpha == foo) {
System.out.println("1. true");
}
if(alpha.equals(foo)) {
System.out.println("2. true");
}
}
}
输出如下:
2. true
然而改变的类型Integer object
到int
将产生不同的输出,例如:
public class Test {
public static void main(String[] args) {
Integer alpha = new Integer(1);
int foo = 1;
if(alpha == foo) {
System.out.println("1. true");
}
if(alpha.equals(foo)) {
System.out.println("2. true");
}
}
}
新的输出:
1. true
2. true
这怎么可能呢? 为什么不是第一示例代码输出1. true
?