Java中对象比较的三种方式

本文详细探讨了Java中对象比较的三种方式:1) 使用`==`和`equals`的区别,强调`equals`需重写以比较对象内容;2) 实现Comparable接口进行自然顺序比较,通过`compareTo`方法比较对象实例域;3) 创建Comparator类覆写`compare`方法,实现自定义比较规则。通过对Student类的示例,展示了这三种比较方式的用法和效果。
摘要由CSDN通过智能技术生成

一. 针对对象值是否相等的比较

== 和 equals 的区别

当我们提到比较值的时候,大多数人都会想到 == ,因为在一般情况下,人们对于比较的概念中,数字比较的应用场景出现频率是最多的.
首先我们创建一个类,之后新建这个类的对象来进行比较验证.

class Student {
   
    public String name;
    public int score;
    
    public Student(String name, int score) {
   
        this.name = name;
        this.score = score;
    }
}
==

我们通常都用 == 来比较数字的大小,那如果用他来比较对象会是什么情况,看下面一个代码.

        Student student1 = new Student("小明", 95);
        Student student2 = new Student("小明", 95);
        if (student1 == student2) {
   
            System.out.printf("相等");
        } else {
   
            System.out.println("不相等");
        }

这段代码中我们创建了包含实例相同的两个对象,都是小明,95分.在运行之前我们也许会想它是相同的,但实则不然,结果为不相等.下面我们再提供一段相似的代码.

        Student student1 = new Student("小明", 95);
        Student student2 = student1;
        if (student1 == student2) {
   
            System.out.println("相等");
        } else {
   
            System.out.prin
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值