Java中equals详解

这篇具有很好参考价值的文章主要介绍了Java中equals详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

equals是在object类中的方法,在object中equals是用来看看两个参数是否引用的是同一个对象

例:

obj.equals(obj2) 若是返回true说明两者引用同一个对象

源码:

public boolean equals(Object obj) {
        return (this == obj);
    }

但是在我们实际开发中经常比较的是两个对象的内容是否相等,因此就要重写equals,注意只能是一个类里比

public boolean equals(Object obj){
        //判断地址是否相同
        //判断测试的是否是同一个对象
        //如果是同一个对象,毋庸置疑,它应该返回True
        if(this==obj){
            return true;
        }
        //非空性
        if(obj == null){
            return false;
        }
        //判断是否是一个类
        if(obj instanceof Person){
            //向下转型
            //将参数传入的对象造型为Citizen类型
            //object类是所有类的父类不向下转换,父类就比较不了子类的属性
            Person p=(Person) obj;
            if(this.name.equals(p.name)&&this.age==p.age){
                return true;
            }

        }
        return false;
    }

equals与==的区别

说到equals不得不提的就是==与他的区别

“==”用来比较基本数据类型(int ,double...)时候是直接比较数值,比较引用数据类型(class,接口...)的时候比较的是对象的引用和地址

例:

public class test {
    public static void main(String[] args){
        city c1=new city(20,"lisi");
        city c2=new city(20,"lisi");
        System.out.println(c1==c2);//flase(比较引用类型)
        System.out.println(5==5);//true(比较基本数据类型)
    }
}

equals没有重写之前比较的是两个实例引用的是不是同一个对象:

public class test {
    public static void main(String[] args){
        city c1=new city(20,"lisi");
        city c2=new city(20,"lisi");
        System.out.println(c1.equals(c2));//flase
    }
}

但是经过对city类中equals的重写:

public class city {
    String name;
    int age;
    public city(int age,String name){
        this.age=age;
        this.name=name;
    }

    //重写equals
   public boolean equals(Object obj){
        //判断地址是否相同
        if(this==obj){
            return true;
        }
        if(obj == null){
            return false;
        }
        //判断是否是一个类
        if(obj instanceof city){
            //向下转型
            city c=(city) obj;
            if(this.name.equals(c.name)&&this.age==c.age){
                return true;
            }
        }
        return false;
    }

}
public class test {
    public static void main(String[] args){
        city c1=new city(20,"lisi");
        city c2=new city(20,"lisi");
        System.out.println(c1.equals(c2));//true
    }
}

总结:“==”用来比较基本数据类型(int ,double...)时候是直接比较数值,比较引用数据类型(class,接口...)的时候比较的是对象的引用地址

equal没有重写之前比较的也是对象的地址,但是重写之后比较的两个对象的内容是不是相同文章来源地址https://www.toymoban.com/news/detail-401695.html

到了这里,关于Java中equals详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java杂记————object.getClass()和object.class以及Java中的toString()方法的的区别

    (这里补充一下:Class类,它就是一个类,它将普通的类作为它的对象: 每个普通类都只有一个Class对象 普通类的Class对象用getClass()方法或者class来获取     比如    同时我们还可以延伸Field属性类,Constructor构造器类) 需要注意的是: 直接用print之类的函数输出一个对象会

    2024年02月11日
    浏览(45)
  • Java 中的比较 equals 和 ==

    这个问题在 Java 面试的时候大概率会被问到。 不是因为这个问题有什么复杂的,只是因为这个地方超出人类认知,你相信吗? 如果你上培训班或者在学校学习的话,你的老师大概率可能会告诉你对于: 基本类型:比较的是值是否相同; 引用类型:比较的是引用是否相同;

    2024年02月09日
    浏览(36)
  • Java中的equals和hashCode

    目录 equals hashCode equals和hashCode之间的关系 总结 equals方法是Object类中用于检测两个对象是否相同的方法,Object类中实现的是两个对象引用是否相同的方法,看以下Object类中代码: 可以看出来,Object类中equals方法本质上比较的还是两个对象的引用是否相同。也就是比较一个对象

    2024年02月06日
    浏览(76)
  • Java中equals详解

    equals是在object类中的方法,在object中equals是用来看看 两个参数是否引用的是同一个对象 例: obj.equals(obj2) 若是返回true说明两者引用同一个对象 源码: 但是在我们实际开发中经常比较的是 两个对象的内容是否相等 ,因此就要重写equals,注意只能是 一个类里比 说到equals不得

    2023年04月08日
    浏览(58)
  • Object.equals 和 String.equals的区别

    一.  源码展示: 1. Object.equals: ①引用类型地址值比较,直接返回结果:true || false   2. String.equals: ① 判断地址值是否相等,若相等 返回 true,若不等则进入下列判断 ; ② 判断参数是否为String类型,若不是 返回false,若是则进入下列判断; ③ 判断字符串长度是否相等,若不

    2024年02月13日
    浏览(41)
  • java equals与equalsignorecase详解

    Java中的equals()方法用于比较两个对象是否相等,它在Object类中定义,通常需要在子类中进行重写以实现特定的行为。equalsIgnoreCase()方法也是用于比较字符串是否相等,但不考虑大小写,即它会忽略字符串中字符的大小写差异。 equals()方法的默认实现是检查两个对象的引用是否

    2024年02月15日
    浏览(38)
  • equals方法的用法(java)

    equals 和 == 易错使用案例集合

    2024年02月16日
    浏览(35)
  • Java中怎么使用equals()方法比较

           在 Java 中, equals() 方法用于比较两个对象是否相等。 equals() 方法是 Object 类的方法,可以被所有的类继承和使用。 要使用 equals() 方法,需要按照以下步骤进行操作: 1.确保你要比较的对象不为 null 。否则,如果你尝试调用 equals() 方法,会触发空指针异常。 2.调用要

    2024年01月19日
    浏览(50)
  • Java面试题: == 和 equals() 区别,toString方法

    == :运算符 可以使用在基本数据类型变量和引用数据类型变量中 如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等。(不一定类型要相同) 如果比较的是引用数据类型变量:比较两个对象的地址值是否相同.即两个引用是否指向同一个对象实体 补充: == 符

    2024年02月08日
    浏览(47)
  • 详解JAVA中的构造方法

    目录 一、构造方法的概念 二、构造方法的特 性         构造方法(也称为构造器)是一个特殊的成员方法, 名字必须与类名相同,在创建对象时由编译器自动调用,并且在整个对象的生命周期内只调用一次。 代码演示: 运行结果 : 注意:           构造方法的作

    2023年04月08日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包