==和equals的区别是什么?

174阅读模式

前置知识:文章源自懂站帝-http://www.sfdkj.com/12918.html

Object是所有类的父类,他的子类继承他所有的方法文章源自懂站帝-http://www.sfdkj.com/12918.html

==:比较的是两个对象的地址值是否相等,如果相等返回true,否则返回false文章源自懂站帝-http://www.sfdkj.com/12918.html

equals:默认情况下和==是等价的,因为都是继承自Object.equals方法。在Object对象中,他的具体实现关键代码是后面这一段(this==obj)。以String来举例,它内部重写了equals方法,使equals比较的是两个字符串是否相同,而不是使用默认地址值比较。文章源自懂站帝-http://www.sfdkj.com/12918.html

案例:文章源自懂站帝-http://www.sfdkj.com/12918.html

String s1= new String("1");文章源自懂站帝-http://www.sfdkj.com/12918.html

String s2= new String("1");文章源自懂站帝-http://www.sfdkj.com/12918.html

System.out.println(s1==s2); //false文章源自懂站帝-http://www.sfdkj.com/12918.html

System.out.println(s1.equals(s2)); //true文章源自懂站帝-http://www.sfdkj.com/12918.html

总结:==比较的是地址,equals取决于子类是否重写,默认和==等价文章源自懂站帝-http://www.sfdkj.com/12918.html

如果内容对你有帮助,希望您点赞收藏加关注,激励作者创作出更加优质内容!文章源自懂站帝-http://www.sfdkj.com/12918.html

懂站帝
  • 本文由 发表于 2022年5月14日 12:03:57
  • 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至395045033@qq.com举报,一经查实,本站将立刻删除。