"=="代表比较双方是否相同
-
基本类型表示值相等
-
引用类型表示地址相等---指同一个对象
equals方法
特点:
-
由Object类中定义:public boolean equals(Object obj)方法
-
提供定义"对象的内容相等"的逻辑---经常回去重写equals方法
-
源码里面定义的内容是默认去看二者是否是同一个对象
实例:
package cn.Lucifer.oo;
import javax.jws.soap.SOAPBinding;
public class TestEquals {
public static void main(String[] args) {
Object obj;
String str;
//创建两个User对象
User u1 = new User(21,"Lucifer","3123123");
User u2 = new User(21,"Lucifer","12312123");
System.out.println(u1 == u2); //地址不同,不同的对象
System.out.println(u1.equals(u2));
}
}
//定义一个新的类
class User{
int id;
String name;
String pwd;
public User(int id, String name, String pwd){
super();
this.id = id;
this.name = name;
this.pwd = pwd;
}
//hashCode的散列码
String的equals源码就是对字符串的挨个字符进行比较
equals方法
package cn.Lucifer.oo;
import javax.jws.soap.SOAPBinding;
public class TestEquals {
public static void main(String[] args) {
Object obj;
String str;
//创建两个User对象
User u1 = new User(21,"Lucifer","3123123");
User u2 = new User(21,"Lucifer","12312123");
System.out.println(u1 == u2); //地址不同,不同的对象
System.out.println(u1.equals(u2));
//创建两个String对象
String str1 = new String("Lucifer");
String str2 = new String("Lucifer");
System.out.println(str1 == str2); //false,因为他们不是同一个对象
System.out.println(str1.equals(str2)); //true,因为他们内容相同,虽然对象不同
}
}
//定义一个新的类
class User{
int id;
String name;
String pwd;
public User(int id, String name, String pwd){
super();
this.id = id;
this.name = name;
this.pwd = pwd;
}
//hashCode的散列码