对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。
“==”比较两个变量本身的值,即两个对象在内存中的首地址。
“equals()”比较字符串中所包含的内容是否相同。
但是有一点值得注意的是,String str1="abc"; Strng str2="abc";
str1和str2是两个字符串常量所生成的变量,其中所存放的内存地址是相等的。
所以str1==str2是true;
而对于非字符串变量来说,“==”和“equals”方法的作用是相同的都是用来比较其对象在堆内存的首地
址,即用来比较两个引用变量是否指向同一个对象。
Object 类的 equals() 方法的比较规则为:当参数 obj 引用的对象与当前对象为同一个对象时,就返回
true,否则返回false
在JDK中有一些类覆盖了 Object 类的equals()方法,它们的比较规则为:
如果两个对象的类型一致,并且内容一致,则返回true。
|