java中==和equals()的区别

本文详细介绍了Java中运算符==和equals()的区别。对于基本数据类型,==比较的是数值,而对于引用数据类型,它比较的是对象的引用。另一方面,equals()方法默认比较对象引用,但在许多类如String中被重写以比较对象内容。当自定义类时,通常需要重写equals()来比较对象的属性。
摘要由CSDN通过智能技术生成

一、==:运算符

  1.可以使用在基本数据类型和引用数据类型之间

  2.如果是基本数据类型:比较的是数据的值char、int、double...都可以参与比较(除了boolean

      例如:char c='10';int i=10;double d=10.0;

                c==i;//true   c==d;//true  i==d;//true

     如果是引用数据类型:比较的是两个对象地址值是否相同,即两个引用是否指向同一个对象

       例如:String s1="str";String s2="str";String s3=s1;

               s1==s2;//false   s3==s1;//true

二、equals():方法

   适用于引用数据类型

   Object类中的equals()方法

   public boolean equals(Object obj){

     return this==obj;

   }

  像String,Date,File等常用引用数据类型都会重写equals()方法

   实际上比较的是引用数据的“实际内容

   如果新建的类想要比较"实际内容",一般都需要自己重写equals()方法

例:

    public boolean equals(Object obj) {

		if(obj==this)
			return true;
		else if(obj instanceof Customer){
			Customer cust=(Customer)obj;
			return id==cust.id&&name.equals(cust.name);
		}else {
			return false;
		}
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值