欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java equals ==,

来源: javaer 分享于  点击 12307 次 点评:11

java equals ==,


java equals 悬赏分:0 - 解决时间:2007-5-15 21:59public class EqualsMethod{ public static void main(String[] args){ Integer n1=new Integer(47); Integer n2=new Integer(47); System.out.println(n1.equals(n2)); } }class Value{ int i; }public class EqualsMethod2{ public static void main(String[] args){ Value n1=new Value(); Value n2=new Value(); n1.i=n2.i=100; System.out.println(n1.equals(n2)); } }为什么上面是true//因为类内equals方法已被重写。下面是false//因为类内equals方法未被重写,故使用Object类的equals方法,相当于使用== 。请告诉我为什么我知道第二种只要在里面覆盖equals()就可以但是为什么呢??????问题补充:这位答复者理解错我的意思了提问者: zengbin163 - 秀才 三级 最佳答案检举晕哪,这是JAVA很基础的东西,建立对象,除非是用”static“修饰、他们占的内存一样,其他的即使相同,但是它们站的内存不一样则不相等,给你个例子:class Example5_1{ public static void main(String args[]) { String s1,s2; s1=new String("we are students"); s2=new String("we are students"); System.out.println(s1.equals(s2)); //输出结果是:true。 System.out.println(s1==s2); //输出结果是:false String s3,s4; s3="how are you"; s4="how are you"; System.out.println(s3.equals(s4)); //输出结果是:true。 System.out.println(s3==s4); //输出结果是:true。 }} 6回答者: mlhm2 - 秀才 二级   2007-5-14 12:13我来评论>>

JAVA中"equals"和"=="他们之间有什么区别

 悬赏分:5 - 解决时间:2009-3-3 14:49 提问者: lxywdp - 兵卒 一级 最佳答案检举解释一下==号,他比较的是一个对象在内存中的地址值, 比如2个字符串对象 String s1 = new String("str"); String s2 = new String("str"); 如果用==号比较,会返回false,因为创建了两个对象,他们在内存中地址的位置是不一样的。 equals的情况比较复杂,它是java.lang.Object类中的一个方法。因为java中所有的类都默认继承于Object,所以所有的类都有这个方法。 在Object类源码中是这样写的。 public boolean equals(Object obj) { return (this == obj); } 他同样使用==号进行内存地址的比较。但是许多java类中都重写了这个方法,比如String。 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; } String里的方法,如果==号比较不相等,还会进行一下值的比较。 所以equals方法具体的作用要看当前的那个类是如何实现重写父类中该方法的。如果没有重写该方法,那么他和==号等价。 1回答者:  knightzhuwei - 魔导师 十级   2009-2-26 20:05我来评论>>提问者对于答案的评价:3Q 收藏于 2009-07-11

相关文章

    暂无相关文章
相关栏目:

用户点评