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 相关文章推荐
SpringBoot2 参数管理实践之入参出参与校验的方式
Jun 16 Java/Android
Java数据结构之链表相关知识总结
Jun 18 Java/Android
Java实现多线程聊天室
Jun 26 Java/Android
每日六道java新手入门面试题,通往自由的道路
Jun 30 Java/Android
Java SSM配置文件案例详解
Aug 30 Java/Android
你知道Java Spring的两种事务吗
Mar 16 Java/Android
Java基于Dijkstra算法实现校园导游程序
Mar 17 Java/Android
spring cloud eureka 服务启动失败的原因分析及解决方法
Mar 17 Java/Android
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
Apr 08 Java/Android
java高级用法JNA强大的Memory和Pointer
Apr 19 Java/Android
Spring Boot接口定义和全局异常统一处理
Apr 20 Java/Android
springboot+rabbitmq实现智能家居实例详解
Jul 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
《雄兵连》系列首部大电影《烈阳天道》:可能是因为期望值太高了
2020/08/18 国漫
PHP cURL初始化和执行方法入门级代码
2015/05/28 PHP
基于ThinkPHP实现批量删除
2015/12/18 PHP
PHP API接口必备之输出json格式数据示例代码
2017/06/27 PHP
jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
2011/11/15 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
程序员必知35个jQuery 代码片段
2015/11/05 Javascript
JavaScript语言精粹经典实例(整理篇)
2016/06/07 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
2016/08/05 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
2018/09/25 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
2020/08/31 Javascript
[00:32]2018DOTA2亚洲邀请赛VGJ.T出场
2018/04/03 DOTA
13个最常用的Python深度学习库介绍
2017/10/28 Python
Python中super函数的用法
2017/11/17 Python
Python使用re模块正则提取字符串中括号内的内容示例
2018/06/01 Python
解决Python pandas plot输出图形中显示中文乱码问题
2018/12/12 Python
python获取服务器响应cookie的实例
2018/12/28 Python
深度辨析Python的eval()与exec()的方法
2019/03/26 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
使用 Python 处理 JSON 格式的数据
2019/07/22 Python
解决pycharm 安装numpy失败的问题
2019/12/05 Python
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
个人自我评价和职业目标
2014/01/24 职场文书
银行内勤岗位职责
2014/04/09 职场文书
国旗下的讲话演讲稿
2014/05/08 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
开幕式邀请函
2015/01/31 职场文书
教你用Python+selenium搭建自动化测试环境
2021/06/18 Python
gojs实现蚂蚁线动画效果
2022/02/18 Javascript
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers