==与equals的区别?

来源:互联网 发布:网络投票工具 编辑:程序博客网 时间:2024/06/05 05:32


String str1=new String("apple");

String str2=new String("apple");

现在有两个Boolean型表达式:

①str1==str2;

②str1.equals(str2);


上述例子的正确值是:①false   ②true

那么结果为什么不一样呢?首先要明确这两个比较符的区别。

       ==操作符是用来比较两个变量的值是否相等,具体的说就是比较变量所对应的内存内部存储的数值是否相等,要比较两个基本类型或者两个引用变量是否相等,则只能用到==操作符。

       equals是用于比较两个独立对象中的内容是否相同,就如同生活中两个人的长相是否相同一样,它比较的对象都是独立性的。

       如同上面案例中String str1=new String("apple");  String str1=new String("apple"); 两条new语句创建了两个对象,str1和str2指向不同的对象,它们的首地址不同,所以str1和str2中存储的数值不同,所以①结果为false;而两个对象中的内容却是相同的,所以②结果为true。


结合生活实例举例:

       如同明星在拍戏的时候找替身,使用equals对比的是只要长的像就可以,不问出身不问出处;使用==对比的是必须是长的像,还是同父同母才可以,都属于同等血脉。

原创粉丝点击