关于==和equals的区别

本文通过三个Java示例程序探讨了对象引用与值相等性的区别。重点解析了使用'=='与'.equals()'方法的不同之处,并提出了对于不同情况下比较对象相等性的理解疑问。

背景:今天开始暑期软工实习课程。看到ppt上的这个知识点有点毛了。

 有三段代码:

 //: c03:Equivalence.java 

                                     

 输出:false 

          true

//: c03:EqualsMethod.java

 
输出:true
//: c03:EqualsMethod2.java

 

输出:false

 

起初着实不懂,找到网上类似的文章:http://www.cnblogs.com/oldjacky/articles/66604.htmlhttp://topic.youkuaiyun.com/u/20071208/17/91362954-7913-4ece-8c18-3b6971a50e4d.html

很不懂,对第一段程序,由结果推,n1、n2是引用类型(虽然不知道为什么,囧),而且不是同一引用,所以才会是fauls。对第二段程序,同样是引用类型,不清楚equals是看引用所对应的值是否相等还是引用是否相等。现在分两种情况:

一、如果是看引用本身的话,那么由2结果,两者是同一引用,与第一个程序矛盾;

二、如果是看引用所对应的值的话,确实为true,对第三个程序,那也应该为true啊,为什么结果是faulse呢?

 

极度矛盾和迷惑中。。。。。。。。。。。。。。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值