Java中equals与"=="的使用区别

本文探讨了Java中equals方法与==操作符的区别,重点分析了它们在基本数据类型及对象比较中的应用。通过具体示例说明了不同情况下两者的实际效果,并详细解释了Integer类如何重写equals方法。

    最开始接触Java的时候,比较对象是否相同的时候,总是纠结于是使用equals还是==,之前写了一篇博客以为自己总结对了。直到最近才发现自己之前说得是错的。所以今天特意把这篇博客从新编辑一下,免得误导自己和别人。

    对于基本数据类型(byte,int,short,long,float,double)是否相等时,只能使用==和!=来判断两个变量是否相等。但是比较对象是否相等时,可以使用==,这个时候比较的是两个变量是否引用的是同一个对象。equals方法进行对象比较时,默认也是比较两个变量是否引用同一个对象;但是java中提供的很多对象重写了equals方法,比较的是对象的值是否相同如Integer,String对象。下面来看例子:

package com.test.model;

public class Student {
	
	int age;

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
	
	

}

package com.test;

import com.test.model.Student;

public class Test {
	
	public static void main(String[] args) {
		
		Student stu1=new Student();
		Student stu2=new Student();
		stu1.setAge(26);
		stu2.setAge(26);
		//Student没有重写equals方法,而equals方法默认是比较对象引用是否相同
		System.out.println(stu1.equals(stu2));
		
		Integer int1=new Integer(11);
		Integer int2=new Integer(11);
		//Integer重写了equals方法
		System.out.println(int1.equals(int2));
		System.out.println(int1==int2);
	}

}

输出结果:

false
true
false
下面是Integer类中重写的equals方法:
    public boolean equals(Object obj) {
        if (obj instanceof Integer) {
            return value == ((Integer)obj).intValue();
        }
        return false;
    }
可以看出Integer类中重写的equals方法比较的是对象的值是否相同。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值