equals 方法是String类从它的超类Object中继承来的。被用来检测两个对象的内容是否相等。equals 方法不能用在基本类型中,只能用在引用类型里,因为基本类型没有equals方法。
==用于比较引用和比较基本数据类型时具有不同的功能。比较基本数据类型,如果两个值相同,则结果为true
String a="asdd",b="as";
boolean e=a.equals(b);
boolean f=(a==b);
System.out.println(e);
System.out.println(f);
输出:false
false
a与b的值不同时,见代码
int a=1,b=9;
boolean f=(a==b);
System.out.println(f);
输出:false
a与b相同,就会输出true,但equals不能用与基本类型
比较对象时如String,用==是比较两个变量是否指向同一个对象,而用equals才是比较两个String的内容是否相等。
String a=new String("5");
String b=new String("5");
boolean e=a.equals(b);
boolean f=(a==b);
System.out.println(e);
System.out.println(f);
输出: true
false
equals是方法,而==是运算符,当一个类没有重写equals方法时,默认的是object中的equals方法,而Object中的equals方法其实就是用==来判断的。
用Student是自定义的一个类
public class Student {
String s;
public Student(String g){
s=g;}
public boolean equals(Object a){
if(s=="a"){ return true;}
else return false;
}
}
比较a.equals(b)与b.equals(a)的值
Student a=new Student("a");
Student b=new Student("b");
boolean e=a.equals(b);
boolean g=b.equals(a);
boolean f=(a==b);
System.out.println(e);
System.out.println(g);
System.out.println(f);
输出:true
false
false