陈述
对于这三者我们可以简单的理解为:
equals是Object类的一个方法,用来比较两个对象的内容是否相等。
equal是继承Object类后对equals重写的一种方法。
“==”是用来比较两个对象的内存地址。
其实equal与equals这两者的功能应该是差不多的,这主要看编程者的编程思路。这里提到两者主要是因为之前在做一个题目时入了一个坑。
题目是:object类中有下面哪个方法?
当时我一看到equal就不假思索的选了。但其实这个答案是错的。object类中应该是equals这个方法,不是equal。虽然只是少了一个s,但意义上却是完全不一样的,一个是父类的方法,一个是子类重写的方法。
关于equals与双等于号),这两个都是判断两个对象是否相等,但equals是判断两个对象的内容是否相等,(双等于号)则是判断两个对象的内存地址是否相等。
String s1 = new String(“ABC”);
String s2 = new String(“ABC”);
s1.equals(s2); 这个结果为true
s1==(s2); 这个结果为false
由于s1与s2是两个不同的对象,所以当他们用“==”进行判断时就会为false,而他们的内容都是ABC,所以当他们用equals判断时为true。