背景:今天开始暑期软工实习课程。看到ppt上的这个知识点有点毛了。
有三段代码:
//: c03:Equivalence.java
输出:false
true
//: c03:EqualsMethod.java
输出:true
//: c03:EqualsMethod2.java
输出:false
起初着实不懂,找到网上类似的文章:http://www.cnblogs.com/oldjacky/articles/66604.html和http://topic.youkuaiyun.com/u/20071208/17/91362954-7913-4ece-8c18-3b6971a50e4d.html
很不懂,对第一段程序,由结果推,n1、n2是引用类型(虽然不知道为什么,囧),而且不是同一引用,所以才会是fauls。对第二段程序,同样是引用类型,不清楚equals是看引用所对应的值是否相等还是引用是否相等。现在分两种情况:
一、如果是看引用本身的话,那么由2结果,两者是同一引用,与第一个程序矛盾;
二、如果是看引用所对应的值的话,确实为true,对第三个程序,那也应该为true啊,为什么结果是faulse呢?
极度矛盾和迷惑中。。。。。。。。。。。。。。
本文通过三个Java示例程序探讨了对象引用与值相等性的区别。重点解析了使用'=='与'.equals()'方法的不同之处,并提出了对于不同情况下比较对象相等性的理解疑问。
31万+

被折叠的 条评论
为什么被折叠?



