public class TestEquals {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str1 = new String("java") ;
String str2 = new String("java") ;
String str3 = str2 ;
if(str1==str2)
{
System.out.println("str1 == str2");
}
else
{
System.out.println("str1 != str2") ;
}
if(str2==str3)
{
System.out.println("str2 == str3");
}
else
{
System.out.println("str2 != str3") ;
}
}
}
===============
输出结果:
str1 != str2
str2 == str3
================
由程序的输出结果可以发现,str1 不等于 str2,有些读者可能会问,str1 与 str2 的内容完全一样,为什么会不等于呢?读者可以发现在程序中实例化了 String 类的两个对象,此时,这两个对象指向不同的内存空间,所以它们的内存地址是不一样的。这个时候程序中是用的“==”比较,比较的是内存地址值,所以输出str1!=str2。