Java对象的比较

本文探讨了Java中的对象创建、数据类型比较以及引用类型的深入理解。对于对象,讲解了如何通过new关键字创建对象。在数据类型比较方面,简单类型使用'=='进行值比较,而引用类型中,'=='比较的是对象的引用地址,equals()方法通常用于内容比较,如String类中对字符序列的逐个对比。此外,展示了Integer类中equals()方法如何进行数值的直接比较。
摘要由CSDN通过智能技术生成

Java的对象Java数据类型的比较简单类型的比较引用类型比较

Java的对象

如果没有”对象“,那就new一个。这个说的就是Java对象的创建。Java语言是一种面向对象的语言。都是以类为模板,对象作为数据处理。对象有属性和行为。行为在java中用方法来描述。

Java数据类型的比较

怎么来比较两个对象呢。哪怕是同一个类,它创建出来的两个对象都可能不是同一个对象。当然,单例模式创建的对象就只有一个对象,也就是无论怎么创建都是同一个对象展示出来的。

简单类型的比较

如果是简单数据类型,我们用”==“来比较。如果两个类型的值相等即返回true,否则返回false。

引用类型比较

引用类型也就是我们说的对象的比较。

  • ”==“比较
    对象比较可以用”==“,也可以用”equals“。
    用”==“来比较引用类型时。如果两个变量指向同一个对象时才返回ture。也就是两个变量指向同一个地址时,返回true。

  • ”equals()“比较
    equals()方法来自于Object类。而所有的类都继承于Object。在Java的API中很多类都重写了equals();
    我们经常用到的equals()是String的。然后就看看String的相关源码吧。下面是我对String的equals()的理解:

public boolean equals(Object anObject) {

        // 先判断两个对象是不是同一个,如果是返回true
        if (this == anObject) {
            return true;
        }

        /*当两个对象不是同一个时, 判断传入的对象是不是String,
         *如果不是,那就返回true
         * 
         */

        if (anObject instanceof String) {
            //如果传入的对象是String。先强制转换成String
            String anotherString = (String) anObject;
            //获取该字符串的长度
            int n = length();
            //判断传入字符串长度和该字符串的长度是否相等
            if (n == anotherString.length()) {
                //如果相等,就每个字符字符的判断,一旦有一个字符不同就返回false
                int i = 0;
                while (n-- != 0) {
                    if (charAt(i) != anotherString.charAt(i))
                        return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }

在Integer中的equals()则是直接对数值做了”==“的比较:

public boolean equals(Object obj) {
        if (obj instanceof Integer) {
            return value == ((Integer)obj).intValue();
        }
        return false;
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值