在Java中,equals和==都是用于检测两个字符串是否相等,返回类型也都是boolean值,但是二者内部处理却不一样。

==与equals( )

==在Java中是一个二元操作符,用于比较原生类型和对象。当比较基本类型时,较为好理解;当比较对象时,比较规则是:两个对象基于内存引用,若两个对象的引用完全相同,则==返回的结果为true。

equals( )方法是Object( )类中,根据具体的业务逻辑来定义该方法,用于检查两个对象的相等性。默认是equals方法实现与==操作是一样的,所以在业务中一般都会重写equals( )。

==和equals比较时

1.如果比较基本数据类型(或者说是值变量)

当时Java的基本类型做比较时,应使用 == 比较的是他们的值,而equals是不存在的。因为int float等是基本数据类型,没有equals( )方法,不存在int.equals( )

2.如果比较的是复合数据类型(或者说是引用型变量)

当比较引用型变量时:

==比较的是两个引用是否指向同一个对象实例

equals( )比较看是否被重写,如果有被重写则按照重写的规则比较,没有重写则与==比较规则一样。

(下图为String中重写的equals( )方法)

最新文章

  1. u-boot的配置、编译及链接
  2. UE4 AI BehaviorTree 各个节点执行顺序总结
  3. PostgreSQL-psql
  4. [NOIP2015] 斗地主(搜索)
  5. Codeforces Round #379 (Div. 2) E. Anton and Tree
  6. spring mvc 第一天【注解实现springmvc的基本配置】
  7. sbt assembly build.sbt content
  8. 循序渐进Python3(三) -- 1 -- 内置函数
  9. [数据库]sql之行顺序
  10. textile
  11. Python输入输出(IO)
  12. 查看Unix系统是32位还是64位
  13. 《大数据Spark企业级实战 》
  14. glusterfs 4.0.1 event模块 分析笔记1
  15. Node.js_express_route 路由
  16. 关于java使用POI导出ppt ,其中表格setText 失败问题
  17. laravel5.6框架中session的使用
  18. python之迭代器、生成器与面向过程编程
  19. 使用 Quartz.NET 实现作业串行执行
  20. nginx支持android、ios、微信扫一扫

热门文章

  1. 190707Python-Redis
  2. golang defer 延后执行什么
  3. GIS开源程序收集
  4. Flask扩展包之flask-admin
  5. linux系统导入证书
  6. java:Springmvc框架2(Ajax,Json,Interceptor,Upload,Exception)
  7. java:LeakFilling(JS,JQ)
  8. nginx下配置vue前端项目
  9. DHCP迁移
  10. 【VS开发】【智能语音处理】Windows下麦克风语音采集