Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Re:求助,这段程序是怎么回事? [Re:winterlord]
whyuaou





发贴: 21
积分: 0
于 2005-08-18 14:14 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
winterlord wrote:
轉一段,也許會對你有幫助:

再來看一個,先看看程式,您以為結果是如何?

Integer i1 = 100;
Integer i2 = 100;

if (i1 == i2)
System.out.println("i1 == i2");
else
System.out.println("i1 != i2");



以自動裝箱與拆箱的機制來看,我想您會覺得結果是顯示"i1 == i2",您是對的!那麼下面這個您覺得結果是什麼?

Integer i1 = 200;
Integer i2 = 200;

if (i1 == i2)
System.out.println("i1 == i2");
else
System.out.println("i1 != i2");

......

所以不要過份依賴自動裝箱與拆箱,您還是必須知道基本型態與物件的差異,上面的程式最好還是依正規的方式來寫,而不是依賴編譯蜜糖(Compiler sugar),例如當值為200時,必須改寫為以下才是正確的。

Integer i1 = 200;
Integer i2 = 200;

if (i1.equals(i2))
System.out.println("i1 == i2");
else
System.out.println("i1 != i2");



結果這次是顯示"i1 == i2"了,使用這樣的寫法,相信您也會比較放心一些,總之一個原則:如果您不確定就不要用。

果真如此吗?
huahua325 wrote:
回复 winterlord
不对啊,我安你的方法试了试,结果都是相等啊
问题应该是出在
Integer n1 = 100这种赋值方式上

huahua325的确看出了问题,可惜没有具体说明。
可以肯定,winterlord的帖子有问题,比较结果和取值范围没有关系,并且Integer i1 = 100是错误的初始化。
Integer是类,创建类的实例除了String类外,都要使用 new 类名()的方式来实例化对象,这里i1是个Integer对象,必须使用Integer i1 = iew Integer(100);来初始化。i2也同样初始化,并且i1==i2不可能成立。
如果用int i1=100;int i2=100;来初始化,成立i1==i2,但if(i1.equals(i2))又不合乎语法,所以,winterlord的帖子有问题,希望转贴的时候自己先看看帖子对不对,不要在这糊弄我们了。




话题树型展开
人气 标题 作者 字数 发贴时间
13061 求助,这段程序是怎么回事?(== & equals) huahua325 297 2005-08-16 09:49
11104 Re:求助,这段程序是怎么回事? ww1ww1 313 2005-08-16 10:42
11166 Re:求助,这段程序是怎么回事? Vilian_Wei 147 2005-08-20 15:25
11246 Re:求助,这段程序是怎么回事? brianlove 85 2005-08-21 23:53
11078 Re:求助,这段程序是怎么回事? Vilian_Wei 156 2005-08-22 16:11
10963 Re:求助,这段程序是怎么回事?(== & equals) zzw109433 356 2005-08-23 14:51
10868 Re:求助,这段程序是怎么回事?(== & equals) ww1ww1 190 2005-08-23 14:54
10922 Re:求助,这段程序是怎么回事?(== & equals) jigsaw 27 2005-08-23 14:56
11272 Re:求助,这段程序是怎么回事? winterlord 1149 2005-08-16 11:39
11124 Re:求助,这段程序是怎么回事? whyuaou 1265 2005-08-18 14:14
11167 Re:求助,这段程序是怎么回事? whyuaou 502 2005-08-16 12:25
11369 Re:求助,这段程序是怎么回事? huahua325 162 2005-08-16 16:22
10946 Re:求助,这段程序是怎么回事? truthawp 109 2005-08-16 16:28
11728 Re:求助,这段程序是怎么回事? huahua325 76 2005-08-16 17:32
11510 Re:求助,这段程序是怎么回事? acl2005 101 2005-08-16 22:39
10980 Re:求助,这段程序是怎么回事? JavaBeginnerPan 81 2005-08-17 17:23
11383 Re:求助,这段程序是怎么回事? acl2005 22 2005-08-17 22:20
11453 Re:求助,这段程序是怎么回事? acl2005 75 2005-08-18 22:22

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   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