Java Equals和==的区别

在J**a中,equals方法和==运算符跟对象的比较有关,他们之间的主要区别在于,equals方法用于检查两个对象的值是否相等,而==用于检查两个对象的引用是否指向同一个对象。 一、==运算符 1、在J**a中,==运算符主要用于比较两个基本类型(如int,char)的值或者两个引用类型的引...

在J**a中,equals方法和==运算符跟对象的比较有关,他们之间的主要区别在于,equals方法用于检查两个对象的值是否相等,而==用于检查两个对象的引用是否指向同一个对象。

一、==运算符

1、在J**a中,==运算符主要用于比较两个基本类型(如int,char)的值或者两个引用类型的引用是否相同。

int x = 5;
int y = 5;
System.out.println(x == y); // 输出:true

2、当用于比较两个引用类型时,==比较的是两个引用是否指向同一个对象,而不是他们的值。

String s1 = new String("Hello");
String s2 = new String("Hello");
System.out.println(s1 == s2); // 输出:false

二、equals方法

1、equals方法是Object类的方法,用于检查两个对象的值是否相同。它在Object类中的默认实现是使用==比较两个对象是否为同一个对象。

String s1 = new String("Hello");
String s2 = new String("Hello");
System.out.println(s1.equals(s2)); // 输出:true

2、但是,很多类(如String,Integer等)都覆盖了equals方法,使其变成了比较值是否相同,而不是比较引用是否同一个对象。

Integer i1 = new Integer(5);
Integer i2 = new Integer(5);
System.out.println(i1.equals(i2)); // 输出:true

三、注意事项

1、在使用equals方法时,我们需要注意如果调用equals方法的对象为null,会抛出NullPointerException。

String s1 = null;
String s2 = "Hello";
System.out.println(s1.equals(s2)); // 抛出 NullPointerException

2、另一点要注意的是,如果两个相比较的对象,它们的类型并不相同,equals方法将返回false。

Integer i1 = new Integer(5);
String s2 = "Hello";
System.out.println(i1.equals(s2)); // 输出:false
#区别 #方法 #对象 #比较 #有关

评论0

首页 导航 会员 客服