当前位置:  技术问答>java相关

对于"=="和"equals()"方法的总结

    来源: 互联网  发布时间:2015-04-27

    本文导语:  对于"=="和"equals()"方法的总结,欢迎各位高手发表自己的看法,比较它们之间的差别。分不够可以再加。 | 简单地说“==”是值比较。 equals()是对象比较  举个例子吧: int a=2; int b=2; a==b返...

对于"=="和"equals()"方法的总结,欢迎各位高手发表自己的看法,比较它们之间的差别。分不够可以再加。

|
简单地说“==”是值比较。
equals()是对象比较 
举个例子吧:
int a=2;
int b=2;
a==b返回的是true,但a.equals(b)是不允许的;
Integer c = new Integer(2);
Integer d = new Integer(2);
c.equals(d) 返回值是true
而c==d返回的是false(c和d此时成了对象)

一般容易在String上犯错误.
要注意的有两点:
一.String 是一 个对象Object!
二.java 中有String pool的概念,在String pool 中只有一个相同对象的实例.
如String s1="aaa";
String s2="aaa";
在String pool中,只有一个aaa
所以s1==s2是true
s1.equals(s2)也是true
明白了吧!




|
对于对象来说:"=="是比较两个对象的引用,看他们是不是引用相同的实例。
     "equals()"是比较两个对象的内容,看他们的内容是不是相等的。
对于基本数据类型来说:只有"==",用它来比较两边的数据是不是相等。

|
class如果不实现equals()方法,和==效果是一样的,很多class你可以实现自己的equals方法。比如String类,equals()方法已经被这样实现:

public boolean equals(Object anObject) {
if (this == anObject) {
    return true;
}
if (anObject instanceof String) {
    String anotherString = (String)anObject;
    int n = count;
    if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
    if (v1[i++] != v2[j++]) {
return false;
    }
}
return true;
    }
}
return false;
    }

|
When you use == with a primitive -int, double, char, ... you are checking that
the values are identical. But if you use == with an object, you are checking that the 2
objects are stored at the same address. In other words the references pointing to the
same object...
Method equals () is different.
It is the same as ==, if it isn't overriden by the object class.
Many classes override the method equals (). In this case this method will check that
content of the object is the same or not, not addresses.

|
==就是比较两个引用是否指向同一个实例。
equals()在Object中的定义和==是一致的,但是作为函数他是可以被重载的,比如
在String和Boolean中,它就被重载为比较两个对象的值是否相等

|
是的吗,这位楼上的朋友?
String s1="123";
String s2="123";
s1==s2   //返回为false----------------------是false吗???
s1.equals(s2)  //返回为真 



    
 
 

您可能感兴趣的文章:

  • java中hashCode方法与equals方法的用法总结
  • java命名空间javax.rmi.corba接口stubdelegate的类成员方法: equals定义及介绍
  • JSP中用于比较相等的equals方法,请指教!
  • java命名空间java.awt类displaymode的类成员方法: equals定义及介绍
  • java中"==" 与equals方法的使用
  • java命名空间javax.swing枚举rowfilter.comparisontype的类成员方法: equal定义及介绍
  • master and slave have equal MySQL server UUIDs 解决方法
  • java命名空间javax.xml.datatype类datatypeconstants的类成员方法: equal定义及介绍
  • why在重写equals时还必须重写hashcode方法分享
  • java命名空间java.text类dateformat的类成员方法: equals定义及介绍
  • java命名空间java.text类dateformatsymbols的类成员方法: equals定义及介绍
  • java命名空间java.text类decimalformatsymbols的类成员方法: equals定义及介绍
  • java命名空间java.text类parseposition的类成员方法: equals定义及介绍
  • java命名空间java.text类decimalformat的类成员方法: equals定义及介绍
  • java命名空间java.text类fieldposition的类成员方法: equals定义及介绍
  • java命名空间java.text类numberformat的类成员方法: equals定义及介绍
  • java命名空间java.security类permission的类成员方法: equals定义及介绍
  • java命名空间java.lang类stacktraceelement的类成员方法: equals定义及介绍
  • java命名空间java.net类urlstreamhandler的类成员方法: equals定义及介绍
  • java命名空间java.text类collator的类成员方法: equals定义及介绍
  • java命名空间java.awt类awtkeystroke的类成员方法: equals定义及介绍
  • java命名空间java.awt类renderinghints.key的类成员方法: equals定义及介绍
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Maps 成员 equal_range():返回特殊条目的迭代器对
  • ==和equals()有多少区别,为什么if (chkfj=="you")和if (chkfj.equals(you))结果不一样
  • C++ MultiMaps 成员 equal_range():返回指向元素的key为指定值的迭代器对
  • 问一个简单问题: if (key!=null && key.equals("TT")) 与if (key.equals("TT") && key!=null)这样的条件是相同的么?
  • java命名空间java.awt.event类keyevent的类成员方法: vk_equals定义及介绍
  • ==与equals的区别?
  • java命名空间java.text类messageformat的类成员方法: equals定义及介绍
  • 创建 OpenGL 应用的中间件 Equalizer
  • java命名空间java.text类rulebasedcollator的类成员方法: equals定义及介绍
  • 请问String.equals()和String.equalsIgnoreCase()有什么区别啊?
  • java命名空间java.awt类dimension的类成员方法: equals定义及介绍
  • 看看会输出什么?结果是equal b,==在string里不是比较两个串是不是相等嘛?
  • java命名空间java.security类allpermission的类成员方法: equals定义及介绍
  • 请问,equals()与regionMatches()有什么区别?先道声谢了!
  • java命名空间javax.activation类activationdataflavor的类成员方法: equals定义及介绍
  • jQuery Music Equalizer
  • java命名空间javax.swing.tree类treepath的类成员方法: equals定义及介绍
  • 测试相等性,用==和equals有什么不同?
  • java命名空间java.sql类timestamp的类成员方法: equals定义及介绍
  • 请教关于equals的问题
  • java命名空间javax.swing.text类tabstop的类成员方法: equals定义及介绍
  • 关于equals的问题!!怪得很!!不知道为何出错!!请大虾指教~!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3