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 相关文章推荐
分析Netty直接内存原理及应用
Jun 14 Java/Android
Java实现二维数组和稀疏数组之间的转换
Jun 27 Java/Android
死磕 java同步系列之synchronized解析
Jun 28 Java/Android
Spring mvc是如何实现与数据库的前后端的连接操作的?
Jun 30 Java/Android
Java基础-封装和继承
Jul 02 Java/Android
mybatis3中@SelectProvider传递参数方式
Aug 04 Java/Android
JPA 通过Specification如何实现复杂查询
Nov 23 Java/Android
spring cloud eureka 服务启动失败的原因分析及解决方法
Mar 17 Java/Android
RestTemplate如何通过HTTP Basic Auth认证示例说明
Mar 17 Java/Android
Java 超详细讲解数据结构中的堆的应用
Apr 02 Java/Android
SpringBoot整合minio快速入门教程(代码示例)
Apr 03 Java/Android
Spring Boot项目传参校验的最佳实践指南
Apr 05 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/01 无线电
php强大的时间转换函数strtotime
2016/02/18 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
php面向对象重点知识分享
2019/09/27 PHP
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
分页栏的web标准实现
2011/11/01 Javascript
ajax的hide隐藏问题解决方法
2012/12/11 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
jQuery判断当前点击的是第几个li的代码
2014/09/26 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
微信小程序使用wxParse解析html的方法教程
2018/07/06 Javascript
解决vue热替换失效的根本原因
2018/09/19 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
原理深度解析Vue的响应式更新比React快
2020/04/04 Javascript
在Mac OS上搭建Python的开发环境
2015/12/24 Python
Python列表元素常见操作简单示例
2019/10/25 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
python实现串口通信的示例代码
2020/02/10 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
德国游戏机商店:Konsolenkost
2019/12/08 全球购物
英国著名药妆店:Superdrug
2021/02/13 全球购物
思想汇报格式
2014/01/05 职场文书
社区两委对照检查材料
2014/08/23 职场文书
小学班级标语口号大全
2015/12/26 职场文书
求职信:求职应该注意的问题
2019/04/24 职场文书
2019年最新借条范本!
2019/07/08 职场文书
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
2021/09/25 Java/Android
css3应用示例:新增的选择器
2022/03/16 HTML / CSS