在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. DS博客大作业--树

    1.树的存储结构说明 树节点结构体 data:文件名 brother:兄弟节点 child:孩子节点 type:节点的类型,0为文件,1为目录 h:节点所在的层次 2.树的函数说明 头文件 函数1:C ...

  2. project2016安装与破解

      分步阅读 project2016发布增加了许多功能.Microsoft Office 2016 官方正式版发布!这是微软发布的全新办公软件套件,相比现有Office 2013的变化也不是很大,界面 ...

  3. AXIS2 通过 WSDL生成JAVA文件

    有时在我们的开发中可能会有这种情况就是你要使用webservice但是对方没有给你提供java文件,可能就只会给你一个wsdl文件,这种文件和xml文件是比较相似.axis2也给我们提供了很好的工具如 ...

  4. java 传值

    好文章:https://zwmf.iteye.com/blog/1738574 public class Test { public int i,j; public void test_m(Test ...

  5. 【3】火狐中: radio被点击以后,重刷页面,不会选择默认的radio

    1.问题:火狐中radio (单选框)点击以后,重新刷新页面,不会选择默认的radio 解决:form表单中添加:autocomplete="off" autocomplete 属 ...

  6. nodejs之mongodb操作

    声明: 当查询到数据库数据后,对数据库数据进行遍历,可以采用toArray()函数,具体实现可以看第六点 1.本地安装mongodb 安装包:https://www.mongodb.com/downl ...

  7. 阶段3 3.SpringMVC·_01.SpringMVC概述及入门案例_09.RequestMapping注解的属性

    看下RequestMapping下面 一共有几个属性 那么属性用处不大 value和path互相为别名 这里用value表示path也是没有问题的 只有一个属性,并且属性名称叫做value那么就可以省 ...

  8. 安装 Genymotion及其破解版

    https://blog.csdn.net/sxk874890728/article/details/82721746 安装 Genymotion及其破解版 2018年09月16日 11:18:09  ...

  9. CMake下,某些选项的后调整

    编译安卓NDK库时,发现在R15的NDK编译出来的库,总是带了-g选项,导致附带调试,文件过大. 搜索一番后,结论是NDK的文件中有问题: https://github.com/android/ndk ...

  10. RL - 001- 入门

    https://www.freecodecamp.org/news/an-introduction-to-reinforcement-learning-4339519de419/ https://gi ...