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()方法,代码如下:
class="java" name="code">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); 
	}
}
?