1. 使用 new Integer() 创建的对象 :
首先,我们知道,在java中,基本类型之间是可以做大小比较的,例如int i=1,int j=2,是可以直接使用关系运算符“<”、“>”、“==”等符号来做比较的。但在实际开发中,基本类型的包装类更为常用,那么包装类型的比较运算是如何呢?
在main方法中执行下面代码:
Integer i = new Integer(100);
Integer j = new Integer(100);
System.out.println(i==j);
有人可能会说,jdk1.5以后,基本类型和包装类型之间是可以自由转换的,那么Integer对象也可以直接用关系运算符来做比较,但实际情况并非这样。执行上述代码,打印结果是:false。
其实原因很简单,上述代码中我们执行了两次new,所以创建了两个Integer型的对象,对象之间的“==”符是用来比较是否是一个对象的两个引用(即比较地址是否相同),上述代码中,两次new出来的对象地址显然是不可能相同的,故打印结果是false。
那么对于“<”、“>”这样的运算符呢?执行下面代码:
Integer i = new Integer(100);
Integer j = new Integer(300);
System.out.println(i<j);
打印结果是true,经过实验,对于“