== 与equals()的区别:
“==”:
对于基本数据类型来说,当 == 两边为基本数据类型时, == 判断的是两边变量中存放的内容是否相等,当==两边为引用数据类型时,==判断的是引用数据类型的对象的内存地址是否一样。
Int a=4;
Int b=4;
a==b 返回的是 true ,
“equals()”:
Equals是一个方法,而方法只有对象才能有,所以equals的左边一定是一个对象,格式是:对象名.equals(比较的内容),比较的是内容,
如:str.equals(“abc”);
指的是str的对象的内容是不是“abc”.
Str1.equals(str2);
比较的是 str1和str2 两个独立对象的内容是否相同。
总结 ==是判断两个变量或实例是不是指向同一个内存空间
equals是判断两个变量或实例所指向的内存空间的值是不是相同
String s1=new String("abc");
String s2=new String("abc");
两条new语句创建了两个对象,然后用是,s1,s2这两个变量分别指向了其中一个对象,这是两个不同的对象,它们的首地址是不同的,即s1和s2中存储的数值是不相同的,所以,表达式s1==s2将返回false,
而这两个对象中的内容是相同的,所以,
表达式s1.equals(s2)将返回true。
|