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 相关文章推荐
Java基础之线程锁相关知识总结
Jun 30 Java/Android
详细了解MVC+proxy
Jul 09 Java/Android
springboot+WebMagic+MyBatis爬虫框架的使用
Aug 07 Java/Android
关于springboot配置druid数据源不生效问题(踩坑记)
Sep 25 Java/Android
Java并发编程之原子性-Atomic的使用
Mar 16 Java/Android
Java实现二分搜索树的示例代码
Mar 17 Java/Android
关于Mybatis中SQL节点的深入解析
Mar 19 Java/Android
Java实现扫雷游戏详细代码讲解
May 25 Java/Android
Spring中的@Transactional的工作原理
Jun 05 Java/Android
Java实现HTML转为Word的示例代码
Jun 28 Java/Android
java中如何截取字符串最后一位
Jul 07 Java/Android
Mybatis 一级缓存和二级缓存原理区别
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
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
php中mkdir函数用法实例分析
2014/11/15 PHP
php+mysqli数据库连接的两种方式
2015/01/28 PHP
php生成图片验证码
2015/06/09 PHP
PHP多态代码实例
2015/06/26 PHP
php实时倒计时功能实现方法详解
2017/02/27 PHP
老生常谈PHP数组函数array_merge(必看篇)
2017/05/25 PHP
jquery 最简单易用的表单验证插件
2010/02/27 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
2015/12/04 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
2016/09/17 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
Node.js log4js日志管理详解
2018/07/31 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
2020/03/23 Javascript
详解Python中的正则表达式的用法
2015/04/09 Python
python实现自动解数独小程序
2019/01/21 Python
Python使用docx模块实现刷题功能代码
2020/02/13 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
利用CSS3实现折角效果实例源码
2016/09/28 HTML / CSS
使用Html5中的cavas画一面国旗
2019/09/25 HTML / CSS
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
动物科学专业毕业生的自我评价
2013/11/29 职场文书
生产班组长岗位职责
2014/01/05 职场文书
老师给学生的表扬信
2014/01/17 职场文书
大学军训感言1000字
2014/02/25 职场文书
中等生评语大全
2014/05/04 职场文书
求职信怎么写范文
2014/05/26 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
初二学生评语大全
2014/12/26 职场文书
初中同学会致辞
2015/08/01 职场文书
JavaScript展开运算符和剩余运算符的区别详解
2022/02/18 Javascript