`
ijavagos
  • 浏览: 1191984 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Java中==和equals的区别

阅读更多

作为一个Java的初学者,刚开始学习时,我对于他们一直是出于很模糊的认识,没有清醒的认识它们本质上的区别,下面是在经过老师的解说和网上的资料统计后,我自己对于它们的认识:

  在JAVA中,==与equals都有比较判断对象是否相等的作用,但具体用法却并不相同。==是运算符号,而equals则属于方法。

  当==两边的对象属于基本类型时,==的作用仅是比较对象的值是否相等,如果相等返回true,否则返回false;当两边的对象属于引用数据类型时,==的作用是判断对象的内存地址是否一致,如果同时指向同一地址,则返回true,否则返回false.

  equals两边对象只能属于引用数据类型,因为equals是方法,所以它是如何具体判断对象是否相等是根据程序而定的,equals是属于object类,默认是判断内存地址是否相同,但在object的子类中可以重写equals方法,如在String类中只是比较对象内容是否一致,一致则返回true,否则返回false

  比如: String s1="abc";

  String s2="abc";

  s1.equals(s2) 是true 因为equals比较的是对象的内容

  而 s1==s2 是false 因为当两边的对象属于引用数据类型时,==的作用是判断对象的内存地址是否相同,s1和s2创建了不同的对象,所以内存地址肯定不同。

原文出自【比特网】,转载请保留原文链接:http://soft.chinabyte.com/database/490/11818990.shtml

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics