首页 > > > 对象引用和对象本身内容
学习Java的时候遇到一个问题?
Integer i1=new Integer(51);
Integer i2=new Integer(51);
System.out.println(i1==i2);--》false
System.out.println(i1.equals(i2));-->true
我知道i1和i2都是两个Integer对象的引用,他们指向的是对象的堆内存地址,每个对象都是标识唯一的,返回false我可以理解。但是第二个理解不了,我网上查了Object类的equals方法源码,网上答案只是:return this==object(形参);那样的话第二个打印结果不可能是:true !!! 猜测的结果是equals方法源码不只有那一句,应该还有一句:如果地址不一致,则比较其内容。
注意:i1引用的可不是String对象,所以不可能调用String重写的equals方法。
请各位楼主帮我解析下,object的equals方法和逻辑运算符“==”比较的不是对象的引用吗?难道基本数据类型有不同的比较,是网上源码错了还是其他地方错了!求源码 !
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2079/viewspace-3152106/ ,如需转载,请注明出处,否则将追究法律责任。