首页 > 其他分享 >String ==和equals的区别

String ==和equals的区别

时间:2022-08-23 12:13:02浏览次数:71  
标签:false String 区别 equals value anObject return

public boolean equals(Object obj) {
    return (this == obj);
}

 

Object 中的 equals() 方法其实就是 ==,而 String 重写了 equals() 方法把它修改成比较两个字符串的值是否相等

public boolean equals(Object anObject) {
    // 对象引用相同直接返回true
    if (this == anObject) {
        return true;
    }
    // 判断需要对比的值是否为 String 类型,如果不是则直接返回 false
    if (anObject instanceof String) {
        String anotherString = (String)anObject;
        int n = value.length;
        if (n == anotherString.value.length) {
            // 把两个字符串转化为 char 数组对比
            char v1[] = value;
            char v2[] = anotherString.value;
            int i = 0;
            // 循环比对两个字符串的每一字符
            while (n-- != 0) {
                // 如果其中一个字符不相等就返回false 若相等就继续比对
                if (v1[i] != v2[i])
                    return false;
                i++;
            }
            return true;
        }
    }
    return false;
}

 

标签:false,String,区别,equals,value,anObject,return
From: https://www.cnblogs.com/sen5463/p/16615685.html

相关文章

  • String 常用Api
    packagecom.itheima;publicclassstring{publicstaticvoidmain(String[]args){Strings1="qwertyuio";Strings3="QWErtyuio";......
  • 面试题:深拷贝、浅拷贝、引用拷贝的区别
    目录引用拷贝浅拷贝深拷贝小结作者:小牛呼噜噜|https://xiaoniuhululu.com计算机内功、JAVA底层、面试相关资料等更多精彩文章在公众号「小牛呼噜噜」引用拷贝引用......
  • 布式开发与敏捷开发的区别
    瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开......
  • 面试突击76:${} 和 #{} 有什么区别?
    ${}和#{}都是MyBatis中用来替换参数的,它们都可以将用户传递过来的参数,替换到MyBatis最终生成的SQL中,但它们区别却是很大的,接下来我们一起来看。1.功能不同${}......
  • 关于post请求与get请求的区别(转自微信端公众号 自动化测试)
    如果我告诉你GET和POST本质上没有区别你信吗?让我们扒下GET和POST的外衣,坦诚相见吧!GET和POST是什么?HTTP协议中的两种发送请求的方法。HTTP是什么?HTTP是基于TCP/IP的关......
  • 协议 - tcp和udp的区别
    协议-tcp和udp的区别TCP/IP协议:是一个协议簇。里面包括很多协议的,UDP只是其中的一个,之所以命名为TCP/IP协议,因为TCP、IP协议是两个很重要的协议,就用他两命名了。TC......
  • Redis中set和list的区别有哪些
    list和set的区别:1、List和Set都是接口继承于Collection接口。2、最大的不同就是List是可以重复的。而Set是不能重复的。(注意:元素虽然无放入顺序,但是元素在set中的位置是......
  • linux su && su - 区别
    linuxsu&&su-区别1.1区别su的全称是switchusersu-就是login-shell的方式,也就是说切换到另一个用户之后,当前的shell会加载对应的环境变量和各种设置su就是no......
  • 1、抽象类和接口的区别
    抽象类:一种概念(如猫、狗、人)(1)抽象类中可以定义构造器(2)抽象类中可以定义抽象或具体的方法(3)抽象类中的成员可以是public、默认、private、protected(4)抽......
  • 【C++-笔记】访问说明符public、protected和private的用途和区别
    在C++当中,访问说明符主要在如下两个场景中使用:成员访问说明符当我们在定义/声明一个类时,需要使用成员访问说明符来说明成员的访问权限,public、protected和private的区别......