==:

  ==比较的是变量内存中存放的对象的内存地址,用来判断两个对象地址是否相同,比较的是否是同一个对象。

  1、两边的操作数必须是同一类型,不然编译不通过。

  2、如果是基本数据类型比较,值相等则为true。因为基本类型不存在引用的概念,都是直接存储在内存中的内存栈上的,数据本身的值就是存储在栈空间。

equals:

  equals比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有的对象。如果没有对equals方法重写,调用的就是Object类的equals方法。而Object中的equals方法返回的是==的判断。

equals和==的区别:

  由equals的源码可以看出这里定义的equals与==是等效的(Object类中的equals没什么区别),不同的原因就在于有些类(像String、Integer等类)对equals进行了重写,但是没有对equals进行重写的类(比如我们自己写的类)就只能从Object类中继承equals方法,其equals方法与==就也是等效的,除非我们在此类中重写equals。

  重写equals必须满足它的5点特性:

    (1)自反性:对于任何非空引用x,x.equals(x)应该返回true;

    (2)对称性:对于任何引用x,和y,当且仅当,y.equals(x)返回true,x.equals(y)也应该返回true;

    (3)传递性:对于任何引用x,y,z,如果x.equals(y)返回true,y.equals(z)返回true,那么x.equals(z)也应该返回true;

    (4)一致性:如果x,y引用的对象没有发生变化,反复调用x.equals(y)应该返回同样的结果;

    (5)对于任意非空引用x,x.equals(null)返回false;

  另外,"=="比"equals"运行速度快,因为"=="只是比较引用。

 

  

最新文章

  1. 1.2.1 OC概述
  2. 使用nodejs+express(4.x+)实现文件上传
  3. Linux程序编写shell script的格式
  4. [转载]Robotium API 翻译(三)——判断测试结果的方法assert、is、search
  5. How to disable and clear query ranges in sysquery form
  6. centos custom iso
  7. [原]Water Water Union-Find Set & Min-Spanning Tree Problems' Set~Orz【updating...】
  8. C#调用C++函数入口点的问题 z
  9. 给自己保存份CSS初始值样式
  10. [转]CentO下限制SSH登录次数
  11. 在 Windows 下远程桌面连接 Linux - VNC 篇
  12. 随手复习一下委托:delegate
  13. java 利用jsoup 爬取知乎首页问题
  14. 用canvas实现红心飘飘的动画效果
  15. java 集合的总结
  16. Luogu P3239 [HNOI2015]亚瑟王
  17. Java关联关系、依赖关系
  18. Servlet初步认知
  19. .3-浅析express源码之applicaiton模块(2)-app.render
  20. 20155334 《网络攻防》Exp5 MSF基础应用

热门文章

  1. 关于获取jquery对象的长度
  2. 如何编写一个路由器的界面1-Luci开发入门
  3. 使用pagehelper分页工具page警告问题
  4. 02:Java基础语法(一)
  5. Flight HDU - 3499 (分层最短路)
  6. lightinthebox 批量设置分类产品排列方式为List、Grid、Gallery
  7. Python核心技术与实战——二十|Python的垃圾回收机制
  8. 498. Diagonal Traverse
  9. Device Tree(一):背景介绍 转
  10. Mongodb的mapreduce