1. Java中equals()方法
class="java" name="code">
Java中equals()方法
1. equals()方法定义在object类中,因此java中的每一个类都具有equals()方法。
2. equals()判断调用它的引用与传进来的引用是否一致,即这两个引用是否指向的是同一个对象。
3. 对于不同类的equals()方法要看具体实现。
对于object类的equals()方法来说,它等价于“==”。
public boolean equals(Object obj) {
return (this == obj);
}
对于String类的equals()方法来说,它是判断当前字符串与传进来的字符串的内容是否一致。(对于String对象的相等性判断来说,使用equals()方法,不要使用“==”)
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
自定义equals方法,继承object类的equals()方法,并且重写了equals()方法。
public class EqualsTest{
public static void main(String[] args){
Student2 s1 = new Student2("zhangsan");
Student2 s2 = new Student2("zhangsan");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}
class Student2{
String name;
public Student2(String name){
this.name = name;
}
public boolean equals(Object anObject){
if(this == anObject){
return true;
}
if(anObject instanceof Student2){
Student2 student = (Student2)anObject;
if(student.name.equals(this.name)){
return true;
}
}
return false;
}
}
运行结果:
false
true
String与Object中equals()方法的使用对比
public class StringTest{
public static void main(String[] args){
String str = new String("aa");
String str2 = new String("aa");
System.out.println(str.equals(str2));
String str3 = "aa";
String str4 = "aa";
System.out.println(str3.equals(str4));
System.out.println("-----------------");
Object object = new Object();
Object object2 = new Object();
System.out.println(object.equals(object2));
System.out.println(object.equals(object));
}
}
运行结果:
true
true
-----------------
false
true
2. Java中"=="的使用
Java中"=="的使用
1. 对于基本数据类型:"=="用来比较值的大小是否相等
2. 对于抽象数据类型:"=="用来比较引用是否指向同一个对象,或者说引用地址是否相同
String与Object中"=="方法的使用对比
public class ObjectTest2{
public static void main(String[] args){
Object object = new Object();
Object object2 = new Object();
System.out.println(object == object2);
System.out.println("----------------");
String str = new String("aaa");
String str2 = new String("aaa");
System.out.println(str == str2);
System.out.println("----------------");
String str3 = "bbb";
String str4 = "bbb";
System.out.println(str3 == str4);
System.out.println("----------------");
String str5 = new String("ccc");
String str6 = "ccc";
System.out.println(str5 == str6);
System.out.println("----------------");
String s = "hello";
String s1 = "hel";
String s2 = "lo";
System.out.println(s == s1 + s2);
System.out.println("----------------");
System.out.println(s == "hel" + "lo");
}
}
运行结果:
false
----------------
false
----------------
true
----------------
false
----------------
false
----------------
true