首页 > 代码库 > 累积下学习 C#时和 Java时的不同点
累积下学习 C#时和 Java时的不同点
-
==和equals()方法的区别:
首先有一个观点: 这两个都是用来比较值是否相等的 ( 这里的值有时候指的是地址值, 有时候是存储的值; 下面将地址值称为地址, 存储的值称为值 )
在Java中:
对于值类型: ==比较的是值, equals()方法比较的也是值 ( 不过值类型需要手动装箱后才能调用方法 )
对于非 Object的引用类型: ==比较的是地址, equals()方法比较的是值 ( 在 Object 类中比较的是地址, 如果类中重写了 equals()方法, 就像根据重写的内容进行比较判断 )
在 C#中:
对于值类型: ==比较的是值, equals()方法比较的也是值 ( 这里的值类型调用方法会自动装箱 )
对于非Object类的引用类型: ==比较的是地址, equals()方法比较的是值 ( 在 Object 类比较的是地址, 如果类中重写了equals()方法, 就根据重写的内容进行比较判断 )
但是 C#中有个特例, 就是 string 类型, 对于 string类型, ==和 equals()方法比较的都是值, 而不是地址. ( 这点要牢记; 但是我还是习惯按照Java中的规则来比较两个string类型的内容是否相等, 就是调用equals()方法, 而不是使用== )
累积下学习 C#时和 Java时的不同点
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。