欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-12 11:18:43
...

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); 
	}
}

 

相关标签: java == equals