1、比较的方式
==进行的是数值或地址比较。
equals是我们自己在类中定义的方法,自己去构建判断逻辑。
2、代码解释
2.1 ==
在==中,八大基础类型除boolean外,之间都进行的是数值间的比较。
在对象之间,比较的是两个对象指向地址是否一致。
案例代码
System.out.println("——————————八大基础类型——————-");
System.out.println("1 == 1为" + ( 1 == 1 ));
System.out.println("1 == 2为" + ( 1 == 2 ));
System.out.println("1.0 == 1为" + ( 1.0 == 1 ));
System.out.println("1.0 == 1.0为" + ( 1.0 == 1.0 ));
System.out.println("1.0 == 1.1为" + ( 1.0 == 1.1 ));
System.out.println("1.0f == 1为" + ( 1.0f == 1 ));
System.out.println("1.0f == 1.0为" + ( 1.0f == 1.0 ));
System.out.println("97 == a为" + ( 97 == 'a' ));
System.out.println("false == true为" + ( false == true ));
System.out.println("——————————–对象———————–");
Object object01 = new Object();
Object object02 = new Object();
System.out.println("object01 == object02为" + ( object01 == object02 ) );
运行结果

2.2 equals
下方是在Object中的equals方法,Object又是所有java类的父类,所以在未重写equals方法时,equals的作用与==一致。

重写后,根据重写的判断逻辑来。
下方是String类重写的equals方法

案例代码
String string01 = new String("zjx");
String string02 = new String("zjx");
String string03 = "zjx";
System.out.println("string01.equals(string02)为" + ( string01.equals(string02) ) );
System.out.println("string01.equals(string03)为" + ( string01.equals(string03)));
Object object01 = new Object();
Object object02 = new Object();
System.out.println("object01.equals(object02)为" + ( object01.equals(object02) ) );
运行结果

3、使用细节
八大基础类型不可以和类对象用==比较,但可以与其包装类比较,因为有自动装箱和自动拆箱机制。
同样,equals也只能在对象间使用。
4、案例代码
public class Example05 {
public static void main(String[] args) {
// ==与equals之间的区别
System.out.println("———————————-==——————-");
testDengHao();
System.out.println("——————————-equals——————-");
testEquals();
}
public static void testDengHao(){
System.out.println("——————————八大基础类型——————-");
System.out.println("1 == 1为" + ( 1 == 1 ));
System.out.println("1 == 2为" + ( 1 == 2 ));
System.out.println("1.0 == 1为" + ( 1.0 == 1 ));
System.out.println("1.0 == 1.0为" + ( 1.0 == 1.0 ));
System.out.println("1.0 == 1.1为" + ( 1.0 == 1.1 ));
System.out.println("1.0f == 1为" + ( 1.0f == 1 ));
System.out.println("1.0f == 1.0为" + ( 1.0f == 1.0 ));
System.out.println("97 == a为" + ( 97 == 'a' ));
System.out.println("false == true为" + ( false == true ));
System.out.println("——————————–对象———————–");
Object object01 = new Object();
Object object02 = new Object();
System.out.println("object01 == object02为" + ( object01 == object02 ) );
}
public static void testEquals(){
String string01 = new String("zjx");
String string02 = new String("zjx");
String string03 = "zjx";
System.out.println("string01.equals(string02)为" + ( string01.equals(string02) ) );
System.out.println("string01.equals(string03)为" + ( string01.equals(string03)));
Object object01 = new Object();
Object object02 = new Object();
System.out.println("object01.equals(object02)为" + ( object01.equals(object02) ) );
}
}





