==与equals的区别

1.使用String new出两个对象,a和b,使这两个对象的值相等

  使用a==b输出flase,这是因为==比较的是内存空间开辟出来的地址,String创建的两个对象的地址是不一样的;
  使用a.equals(b)输出true,这是因为equals比较的是两个对象的内容。
2.如果一个类没有自己定义equals方法,那么它将继承Object类的equals方法,Object类的equals方法的实现代码如下:这说明,如果一个类没有自己定义equals方法,它默认的equals方法(从Object类继承的)就是使用==操作符,也是在比较两个变量指向的对象是否是同一对象,这时候使用equals和使用==会得到同样的结果,如果比较的是两个独立的对象则总返回false。如果你编写的类希望能够比较该类创建的两个实例对象的内容是否相同,那么你必须覆盖equals方法,由你自己写代码来决定在什么情况即可认为两个对象的内容是相同的。

posted @ 2017-06-09 09:19  胖大海的博客  阅读(105)  评论(0编辑  收藏  举报