JAVA中==与equals()用法的区别

在java中"=="是用来比较两者储存值的地址是否相同,比如A==B,就是比较A和B所储存值的地址是否相同。

再来看看equals()的使用 

在java中有这两种情况存在:

      1、使用object类中的equals()方法,这个是java中最初的equals()方法

         如果你自定义一个类A,并且没有去继承其他的类,这时A中的equals()

         的功能就是比较两者储存值的地址是否相同。因为所有的类都继承object

         类,而object类中有equals()这样的方法

        object类中的equals()方法的源代码如下:

          public boolean equals(object obj)

          {

            return this == obj;

          }

 

         从这段代码中,我们可以再次确定,这种情况下的equals()方法的功能是

         比较两者储存值的地址。

 

 

      2、自定义一个类B,但B类继承了c类,而c类中的equals()方法已经被重写过

            了,这种情形就需要具体情况具体分析了,但大部分被重写的equals()方

            法所拥有的功能就是比较两者储存值的内容是否相同,而不再是比较地址

            了。比如:创建一个String对象  String str1 = new String("1");

            String str2 = new String("1");  

            这时str1.equals(str2)比较的就是str1和str2中储存值的内容是否相同 

            了,因为String类中的equals()就被重写了,但这并不意味着所有被重写

            过的equals()方法都是用来比较内容的(因为目前我所遇到的只有这种情

            况,如果大家有兴趣可以去多研究研究

总结:"=="就只有一种用法,而equals()有两种用法,只是所使用的环境不一样而已。

posted on 2012-05-15 11:56 gps梦想 阅读(709) 评论(0)  编辑  收藏 所属分类: JAVA基础


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 
<2012年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

常用链接

留言簿

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜