java的equals和contains的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java的equals和contains的区别相关的知识,希望对你有一定的参考价值。

java的equals和contains的区别:

1、功能不同

equals指示其他某个对象是否与此对象“相等”。

contains当且仅当此字符串包含指定的 char 值序列时,返回 true。

2、用法不同

equals实现对象上差别可能性最大的相等关系;即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。

contains常用与集合中判断某个对象是否含有这个元素。

3、含义不同

equals是比较两个东西是否等同,适用于任何类别的对象。

contains是是否包含的意思,左边的对象是一个容器了。

4、参数不同

equals参数为obj - 要与之比较的引用对象。

contains参数为s - 要搜索的序列。

参考资料来源:百度百科——equals

百度百科——contains()

参考技术A

    只要记得equals用在判断字符串相等的时候。如果你不能确定他们是否为空。你还要判断!=null,==号不能用来判断字符串是否一样。

    Java运行环境有一个字符串池,由String类维护。执行语句String str="abc"时,首先查看字符串池中是否存在字符串"abc",如果存在则直接将"abc"赋给str,如果不存在则先在字符串池中新建一个字符串"abc",然后再将其赋给str。

    java中equals和==的区别 值类型是存储在内存中的堆栈(简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。

    quals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。

    ==比较的是2个对象的地址,而equals比较的是2个对象的内容,显然,当equals为true时,==不一定为true。

    equals()是object的方法,所以只是适合对象,不适合于基本类型,equals()默认是用"=="比较两个对象的内存地址。

    于所有的类都是继承自java.lang.Object类的,所以如果没有对该方法进行覆盖的话,调用
    的仍然是Object类中的方法,而Object中的equal方法返回的却是==的判断。

参考技术B equals是判断字符串的是不是相等,例如:"abc".equals("abc"),返回结果是Boolean类型的true
"abc".equals("ab")返回结果是Boolean类型的false
contains是包含的意思,例如:"abc".contains("a"),返回结果是Boolean类型的true
"abc".contains("d"),返回结果是Boolean类型的false.
contains包含包括,"abc".contains("abcd")是返回的false本回答被提问者和网友采纳
参考技术C 答非所问~垃圾

java equals 和 == 区别

  1. equals 可以重写, == 不可重写
  2. equals 是方法

    equals 是 Object 的方法。

    基本作用:判断两个对象是否为引用

    public class Object {
        // 省略部分代码
       public boolean equals(Object obj) {
            return (this == obj);
        }
    }


    因为 java 中所有类都继承自 Object,所以任何一个类都有默认的 equals 方法,但是只能判断两个对象是否引用。

    可根据自己的需求重载 equals 方法。例如 String 类就重写了 equals 方法。


     

  3. == 是二元操作符

    对于基本数据类型,比较的是值是否相等。

    对于对象:基本功能:判断两个对象是否为引用


    为什么?

    看 object 源码:

    public class Object {
        // 省略部分代码
       public boolean equals(Object obj) {
       // 使用 == 判断是否为同一个对象 return (this == obj); } }

      



基本功能:判断两个对象是否为引用

以上是关于java的equals和contains的区别的主要内容,如果未能解决你的问题,请参考以下文章

Java知识复习

问 答26道Java面试题

Java contains() 方法返回 False,即使重写 equals() 返回 True

Java里的equals和==的区别是否equals是比较内容,==是比较地址的?

[转]Java中==和equals的区别,equals和hashCode的区别

Java知识复习