Java 使用类型为Object的变量指向任意类型的对象


Posted in Java/Android onApril 13, 2022

基本概念:

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

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

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

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

Java 使用类型为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);
    }
}

Java 使用类型为Object的变量指向任意类型的对象

从运行结果可以看到的是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/Android 相关文章推荐
使用feign服务调用添加Header参数
Jun 23 Java/Android
Netty结合Protobuf进行编解码的方法
Jun 26 Java/Android
死磕 java同步系列之synchronized解析
Jun 28 Java/Android
springboot临时文件存储目录配置方式
Jul 01 Java/Android
Java Kafka 消费积压监控的示例代码
Jul 01 Java/Android
Java实现经典游戏泡泡堂的示例代码
Apr 04 Java/Android
Java 常见的限流算法详细分析并实现
Apr 07 Java/Android
JavaScript正则表达式实现注册信息校验功能
May 30 Java/Android
Java中生成微信小程序太阳码的实现方案
Jun 01 Java/Android
ConditionalOnProperty配置swagger不生效问题及解决
Jun 14 Java/Android
Android移动应用开发指南之六种布局详解
Sep 23 Java/Android
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
Apr 13 #Java/Android
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
Apr 13 #Java/Android
Android开发之WECHAT微信小程序路由跳转的两种形式
Apr 12 #Java/Android
JavaWeb Servlet开发注册页面实例
Java中的继承、多态以及封装
JAVA长虹键法之建造者Builder模式实现
Apr 10 #Java/Android
SpringCloud项目如何解决log4j2漏洞
Apr 10 #Java/Android
You might like
咖啡的传说和历史
2021/03/03 新手入门
php实现执行某一操作时弹出确认、取消对话框
2013/12/30 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
phplot生成图片类用法详解
2015/01/06 PHP
Yii学习总结之安装配置
2015/02/22 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
浅析IE10兼容性问题(frameset的cols属性)
2014/01/03 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
javascript 中__proto__和prototype详解
2014/11/25 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
javascript连续赋值问题
2015/07/08 Javascript
详解Javascript继承的实现
2016/03/25 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
2016/12/15 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
2017/04/06 Javascript
vue动画效果实现方法示例
2019/03/18 Javascript
vue 父组件给子组件传值子组件给父组件传值的实例代码
2019/04/15 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
ant-design表单处理和常用方法及自定义验证操作
2020/10/27 Javascript
Python3 加密(hashlib和hmac)模块的实现
2017/11/23 Python
在Pandas中给多层索引降级的方法
2018/11/16 Python
详解Django-auth-ldap 配置方法
2018/12/10 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
Python实现二叉树的最小深度的两种方法
2019/09/30 Python
CSS3简单实现照片墙
2014/12/12 HTML / CSS
水芝澳美国官网:H2O Plus
2016/10/15 全球购物
世界上最大的折扣香水店:FragranceNet.com
2016/10/26 全球购物
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
构造器Constructor是否可被override?
2013/08/06 面试题
学校师德承诺书
2014/05/23 职场文书
药店促销活动总结
2014/07/10 职场文书
代领毕业证委托书
2014/08/02 职场文书
党性观念心得体会
2014/09/03 职场文书
2016企业先进集体事迹材料
2016/02/25 职场文书
MongoDB数据库部署环境准备及使用介绍
2022/03/21 MongoDB