首先明确一点,equals是方法,==是操作符。

1. 如果比较的是基本数据类型:

只讨论==,因为equals是不存在的,因为java中基本数据类型不能调用method的。

2. 如果比较的是引用类型:

==:比较两个引用是不是指向同一个对象实例,即相同的地址。

equals:equals方法是Object类的方法,默认是直接调用==来实现。如果没有被重写,那么调用equals与==没有区别。

但是,在一些类库中这个方法被覆盖了,比如八大基本数据类型的包装类和String类,它们的equals方法比较的是值是否相同,此时的equals就与==有区别了。

我们自己也可以根据需要,来重写equals方法。

注意:

     hashCode方法也是可以来比较两个对象是否相等,但是很少直接使用。hashCode方法返回的是一个int值,可以看做是一个对象的唯一编码,如果两个对象的hashCode值相同,我们应该认为这两个对象是同一个对象。

     所以,我们在对equals方法重写之后,建议一定要对hashCode方法重写,以保证相同的对象返回相同的hash值,不同的对象返回不同的hash值。

最新文章

  1. 创建dll教程
  2. <概要>
  3. Oracle事务之一:锁和隔离
  4. SQL调优之排名优化
  5. wireshark添加ip.id字段
  6. java 读取文件的字节数组
  7. 找到个好的讲PYTHON FILE IO的文档,收藏
  8. [RxJS] Combination operators: concat, startWith
  9. Java 单例总结
  10. c# Activex开发之HelloWorld
  11. Ubuntu 划词翻译
  12. Kaggle初学者五步入门指南,七大诀窍助你享受竞赛
  13. JDK1.7 ConcurrentHashMap--解决高并发下的HashMap使用问题
  14. [20170623]利用传输表空间恢复数据库2.txt
  15. eMMC ext4综述【转】
  16. courator - create
  17. Android:相机适配及图片处理的一些问题
  18. cacti监控jvm
  19. WPF绑定之索引器值变化通知
  20. Windows命令-route

热门文章

  1. linux学习总结---mysql总结②
  2. 【setUp-tearDown】线程组开始,结束各执行一次
  3. Java基础:关键字final,static
  4. appium关键字:
  5. 测试模拟 白屏 / FOUC
  6. Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking---随笔
  7. 深度学习图像分割——U-net网络
  8. Python中的slice操作
  9. 采用c#实现功能1
  10. Oracle ORA-12541:TNS:no listener错误解决方法 (转)