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()
只要记得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方法返回的却是==的判断。
"abc".equals("ab")返回结果是Boolean类型的false
contains是包含的意思,例如:"abc".contains("a"),返回结果是Boolean类型的true
"abc".contains("d"),返回结果是Boolean类型的false.
contains包含包括,"abc".contains("abcd")是返回的false本回答被提问者和网友采纳 参考技术C 答非所问~垃圾
java equals 和 == 区别
- equals 可以重写, == 不可重写
- equals 是方法
equals 是 Object 的方法。
基本作用:判断两个对象是否为引用
public class Object { // 省略部分代码 public boolean equals(Object obj) { return (this == obj); } }
因为 java 中所有类都继承自 Object,所以任何一个类都有默认的 equals 方法,但是只能判断两个对象是否引用。
可根据自己的需求重载 equals 方法。例如 String 类就重写了 equals 方法。 - == 是二元操作符
对于基本数据类型,比较的是值是否相等。
对于对象:基本功能:判断两个对象是否为引用
为什么?
看 object 源码:
public class Object { // 省略部分代码 public boolean equals(Object obj) {
// 使用 == 判断是否为同一个对象 return (this == obj); } }
基本功能:判断两个对象是否为引用
以上是关于java的equals和contains的区别的主要内容,如果未能解决你的问题,请参考以下文章
Java contains() 方法返回 False,即使重写 equals() 返回 True
Java里的equals和==的区别是否equals是比较内容,==是比较地址的?