首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

=号终究比较的是什么?

2012-10-15 
号到底比较的是什么??先看个程序package com.test.onepublic class one {private String nameprivate i

=号到底比较的是什么??
先看个程序

package com.test.one;public class one {private String name;private int id;@Overridepublic int hashCode(){System.out.println("#");return 1;}//重写hashcode/.....public boolean equals(one o){if(o.name.equals(name)&&o.id==id){return true;}return true;}public static void main(String[]args){one o1=new one();one o2=new one();o1.id=1;o2.id=2;o1.name="o1";o2.name="o2";System.out.println(o1==o2);System.out.println(o1.toString());System.out.println(o1.equals(o2));}}

打印
false#com.test.one.one@1true

很多人有自己对 对象直接关于 ==比较的看法
但我在这说自己发现的一些东西
这里的两个对象 但他的方法 equals是永远返回true的
但hashcode也是返回一样的数  也就是说这是hashcode也是相等的
但他们比较后(==)却不相等....
说明==和 hashcode和equals没有关系.....
他其实就是比较的在内存的地址 (String 在常量池中是相等的两个对象 还有-127-128范围内的Integer对象也是相等的)
和其余的都没关系

热点排行