static void checkString(String A,String B)
{
boolean result1=A.equals(B);
System.out.println(A+".equal("+B+") 结果为:"+result1);
boolean result2=(A==B);
System.out.println(A+"=="+B+" 结果为:"+result2);
}
public static void main(String args[])
{
checkString("ABC","ABC");
checkString(new String("ABC"),"ABC");
checkString(new String("ABC").intern(),"ABC");
}
结果为:
ABC.equal(ABC) 结果为:true
ABC==ABC 结果为:true
ABC.equal(ABC) 结果为:true
ABC==ABC 结果为:false
ABC.equal(ABC) 结果为:true
ABC==ABC 结果为:true
equals比较的是2个对象的值;而“==”是比较2个对象的引用(内存地址);
程序在运行的时候会创建一个字符串缓冲池,当使用 B = "ABC" 这样的表达是创建