博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
equals & ==
阅读量:5891 次
发布时间:2019-06-19

本文共 474 字,大约阅读时间需要 1 分钟。

对于值类型,==和equals等价,都是比较存储信息的内容。

而对于引用类型,==比较的是引用类型在栈中的地址,equals方法则比较的是引用类型在托管堆中的存储信息的内容。
对于string类要特殊处理,它是一个内部已经处理好了equals方法和==的类,故==和equals等价,都是比较存储信息的内容。
对于一些自定义的类,我们有必要重载equals方法,否则它默认为基类的equals方法(基类没有重载Equals方法则为Object类中的Equals方法),他们的比较也为地址,而不是引用类型在托管堆中的存储信息的内容。故我们就不难理解一下输出了:
Person p1 = new Person("jia");
Person p2 = new Person("jia");
Console.WriteLine(p1 == p2);//输出False
Console.WriteLine(p1.Equals(p2));//输出False

转载于:https://www.cnblogs.com/newcoder/p/5030884.html

你可能感兴趣的文章
磁盘空间不足
查看>>
资深编曲人常用的软件是哪款呢?
查看>>
vim插件——rainbow
查看>>
Web开发中 前端路由 实现的几种方式和适用场景
查看>>
python3实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
查看>>
梳理一份机器学习的学习目录
查看>>
Java并发编程:深入剖析ThreadLocal
查看>>
Mac OSX 中java7 java8环境的配置
查看>>
我所理解的JDK自动装箱和拆箱
查看>>
30分钟入门Java
查看>>
elasticsearch学习——环境搭建2
查看>>
Ruby中 局部变量(local variable) 块变量(block variable) 与块局部变量(block local variable)...
查看>>
Android零基础入门第55节:ImageSwitcher和TextSwitcher使用
查看>>
网页被篡改怎么防护?
查看>>
数据科学求职过程中总结的四点经验
查看>>
git代码首次提交
查看>>
mysql安装,远程连接,以及修改密码
查看>>
Dart服务器端 shelf_route包
查看>>
spring security(四)
查看>>
js中return、return false、return true的区别
查看>>