Topic: 请大家帮我讲讲(==、equals)区别!!! |
Print this page |
1.请大家帮我讲讲(==、equals)区别!!! | Copy to clipboard |
Posted by: 1332185 Posted on: 2006-06-04 11:01 Integer i=new Integer(42); Long l=new Long(42); Double d=new Double(42.0); a:(i==l) b:(i==d) c:(d==l) d:(i.equals(d)) e:(d.equals(i)) f:(i.equals(42)) 麻烦帮我讲讲,把a、b、c、d、e、f几个选项都讲讲!! 谢谢了!!!!! d选项为:i与d比较 e选项为:d与i比较 |
2.Re:请大家帮我讲讲(==、equals)区别!!! [Re: 1332185] | Copy to clipboard |
Posted by: stormc Posted on: 2006-06-04 12:01 表情符号都出来了啊.. |
3.Re:请大家帮我讲讲(==、equals)区别!!! [Re: 1332185] | Copy to clipboard |
Posted by: jameszhang Posted on: 2006-06-04 14:18 1332185 wrote: 两个对象用 == 比较,比较的是对象引用 限于相同类型对象, equals 则比较 值的 大小 a b c 类型都不同,不能比较,d e 的值 不相同 因为精度不同, f 根据 规范 42 是个整型 所以 应该是 f |
4.Re:请大家帮我讲讲(==、equals)区别!!! [Re: 1332185] | Copy to clipboard |
Posted by: 1332185 Posted on: 2006-06-04 14:55 麻烦论坛其他朋友在帮我讲讲!! 谢谢了!! |
5.Re:请大家帮我讲讲(==、equals)区别!!! [Re: 1332185] | Copy to clipboard |
Posted by: why Posted on: 2006-06-04 20:34 1332185 wrote: 請問閣下想其他朋友再(不是在)讲讲甚麼呢? |
6.Re:请大家帮我讲讲(==、equals)区别!!! [Re: 1332185] | Copy to clipboard |
Posted by: 1332185 Posted on: 2006-06-04 21:30 why大哥! 你误会了,因为以前我什么编程语言都没学过,就直接来学习java,没编程基础,对java理解能力比较低,所以想听听不同的讲解................... |
7.Re:请大家帮我讲讲(==、equals)区别!!! [Re: 1332185] | Copy to clipboard |
Posted by: why Posted on: 2006-06-04 23:56 1332185 wrote: 建議找一兩本書(或視頻)好好讀讀,遇到具體問題再提出,這樣才較有效率 |
8.Re:请大家帮我讲讲(==、equals)区别!!! [Re: why] | Copy to clipboard |
Posted by: gleamyshadow Posted on: 2006-06-05 22:52 why wrote: ==和equals的区别我也不太清楚,但是我看Objece.java中是如下这样定义equals方法的:
通过上面这个代码,也就是说,当我们用equals比较对象A和B的时候,也就是A.equals( B );的时候,java谁将A==B的直返回给该方法,既然如此,那为什么不直接用A==B来比较 |
9.Re:请大家帮我讲讲(==、equals)区别!!! [Re: 1332185] | Copy to clipboard |
Posted by: jameszhang Posted on: 2006-06-06 18:22 public boolean equals(Object anObject) { 哈哈 断章取义 |
10.Re:请大家帮我讲讲(==、equals)区别!!! [Re: gleamyshadow] | Copy to clipboard |
Posted by: zcjl Posted on: 2006-06-06 19:29 gleamyshadow wrote: ==是一个运算符,equals()是一个方法 对于==这个运算符,对所有的Class都是比较是否同一个对象 而equals()方法则不尽然,我们可以使用Object这个Class的默认实现(直接调使用==运算符进行比较),也可以自己override,实现完全与对象比较不相干的逻辑 大多数情况下,我看到的“==与equals的区别”这个问题时,都是特指String这个Class的,而String的euqals方法实现,jameszhang在前面已经帖出来了 如果不指明是那个具体Class的equals方法,你就可以大胆说,==与equals没有任何联系 |
11.Re:请大家帮我讲讲(==、equals)区别!!! [Re: 1332185] | Copy to clipboard |
Posted by: guaqingqing1314 Posted on: 2006-06-06 21:29 ==,是比较两个对象是否为同一个对象,即是否指向同一内容 equals,是比较两个对象中的内容是否相同! |
12.Re:请大家帮我讲讲(==、equals)区别!!! [Re: guaqingqing1314] | Copy to clipboard |
Posted by: foster_shao Posted on: 2006-06-06 23:03 好像不是这样吧,比如 int a=1; int b=1; if(a==b) ............................. a,b 是同一对象??? |
13.Re:请大家帮我讲讲(==、equals)区别!!! [Re: foster_shao] | Copy to clipboard |
Posted by: why Posted on: 2006-06-07 01:06 foster_shao wrote: int, and other primitives, are not objects. |
14.Re:请大家帮我讲讲(==、equals)区别!!! [Re: why] | Copy to clipboard |
Posted by: zcjl Posted on: 2006-06-07 09:07 foster_shao wrote: zcjl wrote: ==运算符,对于primitives是直接比较他们的值,但对于objects,则是比较他们是否同一对象 而对于equals()方法,虽然从字面上理解,是用以比较两个对象是否相等,但其具体功能则看你如何实现它 你可以像Object类那样直接调用==运算符来比较,也可以像String、Integer等类那样比较对象的值 同时,也可以只比较Class内部的一个关键Field,比如使用Hibernate的自定义POJO有时候就只需要比较Identity这个Field是否相等 甚至,就像我前面说的,你可以在equals方法内部不做任何比较操作(不建议如此做,只是举一个极端的例子),而赋予它其他的功能 |
15.Re:请大家帮我讲讲(==、equals)区别!!! [Re: zcjl] | Copy to clipboard |
Posted by: Skybus Posted on: 2006-06-07 10:57 zcjl wrote: Object类中的equals方法用于测试某个对象是否同另一个对象相等.它在Object类中的实现是判断两个对象是否指向同一块内存区域.这种测试并没有太大用处. http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/index.html?overview-summary.html 如果要想测试两个对象相等,就要覆盖equals方法. |
16.Re:请大家帮我讲讲(==、equals)区别!!! [Re: 1332185] | Copy to clipboard |
Posted by: hahaxiao51 Posted on: 2006-06-08 21:27 据我理解==就是比较对象的引用是否相同,只有当两个引用同时指向一个对象时才相等。 equals是比较内容是否相同。 例如: Inteter a=new Integer(4) Integer b=new Integer(4) a==b不成立 a.equals则成立 |
17.Re:请大家帮我讲讲(==、equals)区别!!! [Re: 1332185] | Copy to clipboard |
Posted by: atlantis Posted on: 2006-06-08 23:01 每个java初学者都应该搞懂的问题 http://www.jesoft.cn/posts/list/95.page 里面就完整介绍了== ,equals的用法。。。。 |
18.Re:请大家帮我讲讲(==、equals)区别!!! [Re: atlantis] | Copy to clipboard |
Posted by: zcjl Posted on: 2006-06-09 00:32 hahaxiao51 wrote: 这个解释应该是比较准确的,我忽略了引用这个概念,因此不应该是“两个Class是否同一对象”,而是“两个引用是否指向同一对象” 谢谢hahaxiao51 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |