千家信息网

如何进行equals()方法和==异同的比较

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,如何进行equals()方法和==异同的比较,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。equals()方法是Obje
千家信息网最后更新 2026年11月03日如何进行equals()方法和==异同的比较

如何进行equals()方法和==异同的比较,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

equals()方法是Object类的方法,所有的类都集成了此方法,还有部分类重写了这个方法,我们看一下Object类中关于该方法的的源码:

  1. public boolean equals(Object obj) {

  2. return (this == obj);

  3. }

可以知道,凡事从Object中继承的equals()方法底层使用的都是==,也就是两者比较的都是地址值。
我们再来说一下String,这个类复写了equals()方法,源码如下:

  1. public boolean equals(Object anObject) {

  2. if (this == anObject) {

  3. return true;

  4. }

  5. if (anObject instanceof String) {

  6. String anotherString = (String)anObject;

  7. int n = value.length;

  8. if (n == anotherString.value.length) {

  9. char v1[] = value;

  10. char v2[] = anotherString.value;

  11. int i = 0;

  12. while (n-- != 0) {

  13. if (v1[i] != v2[i])

  14. return false;

  15. i++;

  16. }

  17. return true;

  18. }

  19. }

  20. return false;

  21. }

该方法中,首先用==比较,如果两者地址值相同,就返回true,如果地址值不相同,再判断字符串内容是否相同,如果相同,返回值也是true,我们可以做一个实验:

  1. class equalsTest{

  2. public static void main(String[] args){

  3. String a = "abc";

  4. String b = "abc";

  5. String c = new String("abc");

  6. sop(a==b); //true

  7. sop(a.equals(b)); //true

  8. sop(a==c); //false

  9. sop(a.equals(c)); //true

  10. }

  11. public static void sop(Object o){

  12. System.out.println(o);

  13. }

  14. }

这个实验中,变量a和b底层默认启动的享元设计模式,指向的都是"abc"这个字符串对象,所以地址值相同,而语句new String("abc")底层创建的是两个对象,所以c的地址值和a,b不同,用==判断的结果为false,但是c指向的字符串内容与a是相同的,所以用equals()判断的结果为ture。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

方法 相同 地址 内容 字符 字符串 底层 对象 指向 源码 结果 实验 帮助 异同 不同 清楚 两个 也就是 凡事 变量 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 什么是科技互联网 百单网互联网科技有限公司 科技金融是不是互联网金融 新华互联网科技学院 金诺互联网科技 深圳天众互联网科技公司 润盈互联网科技 互联网高科技企业 互联网科技公司做什么 互联网科技股午盘股票涨跌 受益于互联网科技的高速发展 深圳艾果互联网通讯科技 互联网第三次科技革命特征 互联网营销推广黑科技 江苏互联网智能科技软件 数字科技和互联网金融哪个好 杭州科技互联网公司有哪些 河南商务圈互联网科技有限公司 互联网领先科技成果宣传视频 每日互联网科技新闻 什么是科技互联网 互联网科技公司经营范围 互联网科技工作委员会主任 互联网科技保险 唐信互联网科技 卫星互联网科技股票 武汉健翔互联网络科技有限公司 深圳育鹏互联网科技有限公司招聘 萌小萌互联网科技河南有限公司 互联网金融金融科技
0