Java 中的“==”和equals()方法区别

1、“==”

 

    1)用于比较两个基本数据类型数据是否相等,比较的是内存中存储的值是否相等。

    如:int a=100;

           int b=100;

    则a==b结果为true。

 

    2)用于判断两个引用变量是否指向同一对象。

    如:String a="abc";

           b=a;

    则a==b结果为true。

    另外:String a="abc";

              String b="abc";

    则a==b结果依然为true。(指向字符串常量池中的同一个对象)

 

2、equals()方法

 

    1)用于比较两个引用变量指向的对象值是否相等。

    如:String a=new String("abc");

           String b=new String("abc");

    则a==b结果为false,a.equals(b)结果为true。

 

    2)对于自定义的类,默认会继承Object对象的equals()方法,代码如下:

public boolean equals(Object o){
	return this==o;
}

    结论:

    a)如果自定义类没有覆写Object的equals()方法,则使用equals()的效果和使用“==”一样,即比较两个引用变量是否指向同一个对象。

    b)如果想比较自定义类的两个对象是否相等,则需要覆盖Object的equals()方法,定义自己的比较规则。

    比如:

public class Person{
	private String name;
        public void setName(String name){
		this.name=name;
	}
	public String getName(){
		return name;
	}
	public boolean equals(Object obj){
		if(this==obj){
			return true;
		}
		Person p=(Person)obj;
		return p.getName().equals(this.name); 
	}
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值