不能直接使用==或!=操作符来比较的两个基本数据类型的包装类的值,因为这些操作符比较的是对象的引用而不是对象的值。
符合规范的方案使用equals()而不是==操作符来比较两个对象的值。这个程序在所有的平台运行时都会打印true、false、true、false的结果,这符合预期。
public class Wrapper {
public static void main(String[] args) {
Integer i1 = 100;
Integer i2 = 100;
Integer i3 = 1000;
Integer i4 = 1000;
System.out.println(i1.equals(i2));
System.out.println(!i1.equals(i2));
System.out.println(i3.equals(i4));
System.out.println(!i3.equals(i4));
}
}