equal和==

equal与==的区别:

在Objiect类中,这两者是等同的。

而在其他子类如String中equal被改写。equal在String中被改写,比较的是内容。

   

package com.fs.test;

   

public class Test {

private void m1() {

String s1 = "abc";

String s2 = "abc";

//s1,s2指向同一个字符串

   

String s3 = new String("abc");

//s3用new在堆中的开辟,地址不同于s1,s2,而内容仍是复制的数据段中的"abc"。

   

System.out.println(s1==s2);//true

System.out.println(s1==s3);//false

   

boolean b1 = s1.equals(s2);//true;

boolean b2 = s1.equals(s3);//true;        //equal在String中被改写,比较的是内容。因此相等。

}

public static void main(String[] args) {

new Test().m1();

}

}

原文地址:https://www.cnblogs.com/mylinux/p/3064866.html