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

==与equals( )

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

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

==和equals比较时

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

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

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

当比较引用型变量时:

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

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

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

Java中的==和equals( )方法的更多相关文章

  1. Java中==号与equals()方法的区别

    String str1 = new String("abc"); String str2 = new String("abc"); System.out.pri ...

  2. Java中Set的contains()方法——hashCode与equals方法的约定及重写原则

    转自:http://blog.csdn.net/renfufei/article/details/14163329 翻译人员: 铁锚 翻译时间: 2013年11月5日 原文链接: Java hashC ...

  3. Java中Set的contains()方法

    Java中Set的contains()方法 -- hashCode与equals方法的约定及重写原则 翻译人员: 铁锚 翻译时间: 2013年11月5日 原文链接: Java hashCode() a ...

  4. 2)Java中的==和equals

    Java中的==和equals   1.如果比较对象是值变量:只用==   2.如果比较对象是引用型变量:      ==:比较两个引用是不是指向同一个对象实例.      equals:       ...

  5. java中的==和equals的区别

    关于JAVA中的==和equals函数的区别 今天在研读Thinking in java 时注意到==和equals的区别,于是就通过查看JDK_API才读懂了他们的区别,于是将心得分享一下,望批评指 ...

  6. java中的==、equals()、hashCode()源码分析

    转载自:http://www.cnblogs.com/xudong-bupt/p/3960177.html 在Java编程或者面试中经常会遇到 == .equals()的比较.自己看了看源码,结合实际 ...

  7. java中的==、equals()、hashCode()源码分析(转载)

    在java编程或者面试中经常会遇到 == .equals()的比较.自己看了看源码,结合实际的编程总结一下. 1. ==  java中的==是比较两个对象在JVM中的地址.比较好理解.看下面的代码: ...

  8. 深入分析Java中的 == 和equals

    关于Java中的 == 和equals的解释请看这位博主的文章 :http://www.cnblogs.com/dolphin0520/p/3592500.html 以下是我对这篇文章的一些扩展. 对 ...

  9. 【Java】Java中常用的String方法

    本文转载于:java中常用的String方法 1 length()字符串的长度 String a = "Hello Word!"; System.out.println(a.len ...

随机推荐

  1. MessageWebSocket

    using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; usi ...

  2. Postman下载与安装

    融e学-一个专注于重构知识,培养复合型人才的平台:http://www.i-ronge.com/ Postman 的官网下载地址是:https://www.getpostman.com/ 下载后看到压 ...

  3. https的那些坑

    1.时间 一些老手机不是系统自动对时,时间错误会报错. com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeExceptio ...

  4. docker top 和 docker exec ps 命令查看的PID区别

    区别在于 docker top 查看到的 PID 属于宿主机的 PID.我们可以通过  宿主机执行 ps -ef 查看结果 也可以进去容器执行 top 和 ps查看结果

  5. Android-Universal-Image-Loader的缓存处理机制与使用 LruCache 缓存图片

    讲到缓存,平时流水线上的码农一定觉得这是一个高大上的东西.看过网上各种讲缓存原理的文章,总感觉那些文章讲的就是玩具,能用吗?这次我将带你一起看过UIL这个国内外大牛都追捧的图片缓存类库的缓存处理机制. ...

  6. python开发问题

    1. pip3 ''' pip3 install --upgrade pip sudo apt-get install python3-setuptools pip3 install --upgrad ...

  7. CSS3 长度单位

    http://www.w3chtml.com/css3/units/length/vh.html https://www.html.cn/book/css/values/length/vh.htm . ...

  8. docker 安装 gitlab 中文社区版

    docker pull twang2218/gitlab-ce-zh 创建一个docker 目录 /usr/local/docker/gitlab 创建一个 docker-compose.yml ve ...

  9. IIS配置安卓下载.apk文件

    前提:你的.apk文件所在路径正确,例如:www.grainnews.com.cn:8002/Attach/Images/201807/20180712091842127.apk 1.打开IIS 2. ...

  10. css样式,媒体查询,垂直居中,js对象

    下面是一些截图,有关查询效率,css样式,媒体查询,垂直居中,js基本类型.