Java中==的用法

Giventhefollowingclass:publicclassSample{longlength;publicSample(longl){length=l;}pub... Given the following class:
  public class Sample{
  long length;
  public Sample(long l){ length = l; }
  public static void main(String arg[]){
  Sample s1, s2, s3;
  s1 = new Sample(21L);
  s2 = new Sample(21L);
  s3 = s2;
  long m = 21L;
  }
  }

s2 == s3;
为什么返回true
展开
 我来答
EvilProxy
2011-12-14 · TA获得超过294个赞
知道小有建树答主
回答量:280
采纳率:100%
帮助的人:264万
展开全部
其实,你理解的比较地址也是正确的,java里面是说“引用”
其实和C++的地址类同
因为你有一个s3=s2,导致s3保存的“地址”(引用)赋值成了s2的“地址”
所以,s3==s2
而后面的s1==s2 //这个就false了
s1.equal(s2) //这个就true了

而s3和s2指向(引用)的是同一个东西
匿名用户
2011-12-14
展开全部
怎么不相同,你自己赋的值s3 = s2;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
学院派代码兔
2011-12-14 · 超过35用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:87万
展开全部
s2和s3指向同一个对象
更多追问追答
追问
==不是比较的是地址么,s2和s3地址不相同呀
追答
地址?java中又没有指针,怎么会比较地址,s2和s3指向的是同一片内存
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式