Equals和==的比较
2016-02-16 23:49
148 查看
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
oA和oB是两个不同的对象,引用不一样,因此equals为False。
oA和oB存储地址都不一样,因此 == 也为false, 即使两个值是相等的。
oA和oC是同一个对象,因此任何对象的赋值,只改变一个地址上的值,
两个对象的地址和值永远相等。
如果oA=1,再设置oC=2,最后两个值都会等于2
参考引用:
http://new-fighter.iteye.com/blog/1634786
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
oA和oB是两个不同的对象,引用不一样,因此equals为False。
oA和oB存储地址都不一样,因此 == 也为false, 即使两个值是相等的。
MyClass oA = new MyClass(); MyClass oB = new MyClass(); Console.WriteLine(oA == oB); Console.WriteLine(oA.Equals(oB));
oA和oC是同一个对象,因此任何对象的赋值,只改变一个地址上的值,
两个对象的地址和值永远相等。
如果oA=1,再设置oC=2,最后两个值都会等于2
MyClass oC = oA; Console.WriteLine(oA == oC); Console.WriteLine(oA.Equals(oC));
参考引用:
http://new-fighter.iteye.com/blog/1634786
相关文章推荐
- 【每周一文】Factorization Machines
- eclipse里怎么用命令行输入args
- 使用SwipeRefreshLayout实现下拉刷新与上拉加载更多
- 《程序设计与算法》专项课程中止学习
- 【每周一文】Supervised Sequence Labelling with Recurrent Neural Networks
- UVA 839
- https详解
- 【每周一文】Natural Language Processing (almost) From Scratch
- 从头认识Spring-2.6 在注解中使用表达式@Value(2)-使用表达式注入其他对象的值
- [mvc]记一次“项目”的历程
- /etc/host 配置主机名字
- asp.net mvc 如何调用微信jssdk接口:分享到微信朋友(圈)| 分享到qq空间
- web过滤器
- 【每周一文】A Few Usefull Things to know about Machine Learning
- socket超时设置详解(connect/read/write)
- 梯度下降实现案例(含python代码)
- java如何将一个序列化对象添加到压缩文件中
- parse()与stringify()
- Java学习之静态修饰符:static
- 一道有趣的题目