| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1360 人关注过本帖
标题:关于“==”和equals的问题!
取消只看楼主 加入收藏
zsolong
Rank: 1
等 级:新手上路
威 望:1
帖 子:193
专家分:0
注 册:2006-12-15
收藏
 问题点数:0 回复次数:2 
关于“==”和equals的问题!

public class EqualTest {

public static void main(String[] args) {

Integer i1 = 1000;
Integer i2 = 1000;
if(i1 == i2)
{System.out.println("Same objects");}
if(i1!=i2)
{System.out.println("Different Objects");}
if(i1.equals(i2))
{System.out.println("meaningfully equal");}

Integer i3 = 10;
Integer i4 = 10;
if(i3 == i4)
{System.out.println("same object");}
if(i3 != i4)
{System.out.println("Different object");}
if(i3.equals(i4))
{System.out.println("meaningfully equal");}

}

}

输出的结果是:
Different Objects
meaningfully equal
same object
meaningfully equal

结果让我感觉不是太理解,为什么上面
Integer i1 = 1000;
Integer i2 = 1000;
而下面
Integer i3 = 10;
Integer i4 = 10;
的结果会不一样呢?
请大家帮忙看看,谢谢!

搜索更多相关主题的帖子: equals 
2007-07-09 10:00
zsolong
Rank: 1
等 级:新手上路
威 望:1
帖 子:193
专家分:0
注 册:2006-12-15
收藏
得分:0 
原来是由于Integer的缓存导致的,不错,谢谢诸位!

2007-07-10 09:54
zsolong
Rank: 1
等 级:新手上路
威 望:1
帖 子:193
专家分:0
注 册:2006-12-15
收藏
得分:0 
接着出一道题,帮大家理解一下这两者的区别:
有下面的代码片断:
Float s=new Float(0.9F)
Float t=new Float(0.9F)
Double u=new Double(0.9)

那么下面哪些表达式的结果是true呢?
A. s==t
B. s.equals(t)
C. s==u
D. t.equals(u)
大家可以试着做一下,呵呵,答案稍后公布。

[此贴子已经被作者于2007-7-10 10:03:11编辑过]


2007-07-10 10:01
快速回复:关于“==”和equals的问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013583 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved