快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

和记APP_机器人论坛



equals措施是object类供给的一个实例措施。以是所有引用变量都可以调用该措施来判断是否与其他引用变量相等。然则这个措施判断两个工具相等的标准与==没有差别,都要求两个引用变量指向同一个工具时才返回true。以是 object供给的eq和记APPuals措施没有太大年夜的实际意义。这就孕育发生了重写 equals 措施。关于若何重写equals()措施,这里先不做先容。

有些人提出质疑和记APP,说String的很多变量都可以用equals措施对照是否相等。那是由于String已经重写了object的equals措施。String的equals()措施判断两个字符串是否相等的标准是:只要两个字符串所包和记APP孕的字符序列相同,那么返回true,否则返回false。例如:

public static void main(String[] args) {

String str1 = new String("Fire");

String str2 =和记APP new String("Fire");

System.out.println(str1 == str2);

System.out.println(str1.equals(str2));

}

打印结果:

false

true

而下面这个例子:

public static void main(String[] args) {

Persion p1 = new Persion();

Persion p2 = new Persion();

System.out.println(p1.equals(p2));

}

显然打印 false 。

然则该当留意下面这种环境:

public static void main(String和记APP[] args) {

String str1 = "Fire";

String str2 = "Fire";

String str3 = new String("Fire");

String str4 = new String("Fire");

System.out.println(str1 == str2);

System.out.println(str3 == str4);

System.out.println(str1 == str3);

System.out.println(str3.equals(str4));

System.out.println(str1.equals(str4));

}

打印结果为:

true

false

false

true

true

str1 == str2 返回true。这一点,我也不太理解。不知道String直接用"Fire"赋值与new出来的细节区别在哪里。等今后理解了,再做进一步解释。也请懂的人不吝见示...

您可能还会对下面的文章感兴趣: