Java Object类equals方法

 更新时间:2022年04月13日 17:27:51   作者:mob604756fd5175  
这篇文章主要介绍了Java Object类equals方法,Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入,下文更多相关介绍,需要的小伙伴可以参考一下

基本概念:

  • Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入;
  • Object类是所有Java类的祖先。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。可以使用类型为Object的变量指向任意类型的对象

equals()方法:比较两个对象是否同一

      如果两个对象具有相同的类型以及相同的属性值,则称这两个对象相等。如果两个引用对象指的是同一个对像,则称这两个变量同一。Object类中定义的equals 函数原型为:

public boolean equals(Object);他是判断两个对象是否同一,并不是是否相等

  •  ①只能处理引用类型变量
  •  ②在Object类,发现equals()仍然比较的两个引用变量的地址值是否相等
package com.example.demo.test;

public class Person {

    private String userName;
    private String age;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
}
package com.example.demo.test;

public class Test {

    public static void main(String[] args) {
        Person p1 = new Person();
        Person p2 = new Person();
        System.out.println(p1.equals(p2));
        System.out.println(p1 == p2);

        /*
         * String类重写了Object类的equals()方法,比较是两个对象的实体内容"是否完全相同。
         */
        String s1 = new String("AA");
        String s2 = new String("AA");
        System.out.println(s1.equals(s2));
        System.out.println(s1 == s2);
    }
}

从运行结果可以看到的是Object中的equals方法比较的是两个对象是否同一,

而String类中的equals方法比较的是字符串的value是否相等。 请看String.java中equals的方法

public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String anotherString = (String)anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                        return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }

到此这篇关于Java Object类equals方法的文章就介绍到这了,更多相关Java  equals方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot中自定义注解实现参数非空校验的示例

    SpringBoot中自定义注解实现参数非空校验的示例

    这篇文章主要介绍了SpringBoot中自定义注解实现参数非空校验,帮助大家更好的理解和使用springboot框架,感兴趣的朋友可以了解下
    2020-11-11
  • Java web实现动态图片验证码的示例代码

    Java web实现动态图片验证码的示例代码

    这篇文章主要介绍了Java web实现动态图片验证码的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • IDEA的Mybatis Log Plugin插件配置和使用详解

    IDEA的Mybatis Log Plugin插件配置和使用详解

    这篇文章主要介绍了IDEA的Mybatis Log Plugin插件配置和使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 如何去除Java中List集合中的重复数据

    如何去除Java中List集合中的重复数据

    这篇文章主要介绍了Java中List集合去除重复数据的方法,对大家的工作或学习有一定价值,有需求的朋友可以参考下
    2020-05-05
  • SpringBoot项目中如何访问HTML页面

    SpringBoot项目中如何访问HTML页面

    这篇文章主要介绍了SpringBoot项目中如何访问HTML页面,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java String类的性质与比较

    Java String类的性质与比较

    字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串,本文将为你带来详细介绍,感兴趣的朋友继续往下看吧
    2021-10-10
  • JAVA判断两个时间之间的差

    JAVA判断两个时间之间的差

    经常会遇到需要判断两个时间之间的差异的情况,本文主要介绍了JAVA计算两个时间之间的差,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Spring Cloud Gateway不同频率限流的解决方案(每分钟,每小时,每天)

    Spring Cloud Gateway不同频率限流的解决方案(每分钟,每小时,每天)

    SpringCloud Gateway 是 Spring Cloud 的一个全新项目,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。这篇文章主要介绍了Spring Cloud Gateway不同频率限流(每分钟,每小时,每天),需要的朋友可以参考下
    2020-10-10
  • spring aop Pointcut execution规则介绍

    spring aop Pointcut execution规则介绍

    这篇文章主要介绍了spring aop Pointcut execution规则,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • JAVA+Struts2获取服务器地址的方法

    JAVA+Struts2获取服务器地址的方法

    这篇文章主要介绍了JAVA+Struts2获取服务器地址的方法,是Struts2的一个简单应用,具有一定的借鉴与参考价值,需要的朋友可以参考下
    2014-11-11

最新评论