由一道无限循环题所引发的思考。
从例子上看出,显然前后比较的依据不同,才会产生最后的ture,
那么>,>=,<,<=比较的是对象的基本数据类型数值,而==,!=比较的是内存地址值。
那么求教下原理。
package mine;
public class Demo {
public static void main(String[] args)
{
Integer i=new Integer(2);
Integer j=new Integer(2);
// while(i<=j && j<=i && i!=j )
// {
// System.out.println("******");
// }
System.out.println(i==j);
System.out.println(i.toString()==j.toString());
System.out.println(i.hashCode()==j.hashCode());
System.out.println(i.equals(j));
System.out.println((i<=j ));
System.out.println((i<=j && j<=i ));
System.out.println((i<=j && j<=i && i!=j));
}
} |