1、equals():用来检测两个对象是否相等,即两个对象的内容是否相等。
2、==:用于比较引用和比较基本数据类型时具有不同的功能,具体如下:
(1)、基础数据类型:比较的是他们的值是否相等,比如两个int类型的变量,比较的是变量的值是否一样。
(2)、引用数据类型:比较的是引用的地址是否相同,比如说新建了两个User对象,比较的是两个User的地址是否一样。
三、运行速度不同
1、equals():没有==运行速度快。
2、==:运行速度比equals()快,因为==只是比较引用。
啊双等于和一口死,那么这道题目呢,通常呢出现在比试中的频率呢,会比较高啊,通常呢可能会给你几个支付串,然后呢让你去对比啊,这个支付串去双等于或者是一口死,看到这个,是返回处还是返回了 dose 对吧,当然了可能有的时候呢,还会有一些特殊的一些对象,对吧,啊那么这个双等于跟这个 e x 啊,面对这种题到底应该怎么样去做,那么我们只要明,白了它的底层的这个原理的话,那么实际上呢,是很好去判断它到底是错,还是 fos 的啊,好我们来看一下这个,那么双等于和1股是比较这里了,写了一句话叫做了,双等于啊对比的是站中的值,那么基本数据类型呢比的是变量值啊,如果是引用类型呢,对比的是,引用地址,也就是说这个引用类型,对应的在,堆中的这个对象的这个地址啊,我们知道在我们的这个,呃加瓦中有两块了,呃很重要的两块内存对吧一个赞,还有了一个堆啊,那么我们的基本数据类型呢,直接呢就是在战中分配的啊,比如说我们的硬的哎,如果等于1那么了直接就在战中分配,那么这个时候呢,对比战中的值呢,也就是说对比这个一对吧,那么如果你是一两个硬的值,都是等于1的话,那么呃,双等于的话那么肯定返回为错对吧,因为他对比的就是占中了这个值,因为他对比的就是占中了这个值
好那么如果是引用类型,比如说我们是一个试卷啊,那么我们采用如果是另一个试卷啊,这边的另一个试卷,如果是 new 一个丝菌的话,那么这个丝菌呢,实际上他是指向的,在堆中的这个内存地址,对不对,这个堆中这一块内存这个对象的,而内存地址引用地址啊,记录在这里啊,那么这里呢,记录的可能是叉叉叉叉对不对,那么这个时候,我们再采用这个双的文具,对比的话,对比的是这个地址啊,如果我们还有一个试卷,如果呢又扭了一下,又扭了一下的话那么明显,这个类似的地址呢,肯定不一样对不对,那么这个时候,你去对比这两个试卷的话,那么呢他肯定是错失啊,那么这个就是其实就是这个双,等于跟这个一口四啊,对比的内容是什么啊,那么一口四的话,在 object 的中呢,默认的其实呢也是采用双等于去比较,所以呢我们如果没有做这个重写,没有做特殊处理的话其实一口四啊,跟这个双等于其实呢啊,没有多大的差别啊,不做特殊处理,一口词跟双等于是一样的啊,但是呢这个一口词呢,在我们 object 中啊他是,采用的双等于但是跟一口词呢,我们是可以重写的,而且通常来说呢我们都会去做重写,啊就比如来说,我们如果有两个词句对吧两个字不串,我们如果有两个词句对吧两个字不串
那么如果他的词都都是 abc,那么这两个 abc 我们去做这个烧双,等于的时候,你是希望他返回处还是返回 dose 呢,那么实际上呢可能会返回为 dose,但是如果我想让他返回为醋,怎么办呢,实际上是菌呢,已经帮我们做了处理了啊,我们来看一下,那么诗俊他本身呢,已经帮我们重写了一口子方法,我们来可以看一下,简单看一下他这一口子是怎么写的,实际上呢就是把把我们,这个字符串里边的每一个字符呢,把它取出来去对比一下看是否相等啊,所以说只要,这个字符串中的每一个字符,如果是相等的话,那么呢他其实就是相等的啊,所以说,四骏呢他已经重写了这个一口词,那么你再去调这个一口词的话,他跟这个双等于呢,他就会产生不一样的结果啊,原因就是原因,就是因为我们重写了一口式方法好,那么明白了上面的这些原理之后,我们再来看一下这个面试题啊,就是这个比试题那么我们这里呢呃,写了一个三个字符串对吧,应该是 t r e s t r 2,还有那个 s t r 3,那么这个 str e 跟 str 2呢,是通过两种不同的方式,来定义我们的支付串啊,那么这个支付串呢,那么这个支付串呢
为什么有两种方式它有什么区别呢,我们来看一下啊,那比如说我们这呢,是一个一个堆中的一个内存啊,那么像,通过第一种方式来定义支付串的话,实际上在我们堆里面呢,是有一块很特殊的一块,内存叫做了呃,销售常量词对吧就是我们的常量词啊,那么如果通过,通过这种方式来定义,我们的支付串的话,这个哈喽,实际上是会在这个常量词中呢,去分配内存啊,而通过这个 new,通过这个 new 的关键字的话呢,我们都知道,那么这个呢,肯定是在堆中去分配内存对不对,所以说我们第一个 sda e,双等于 sdr,我们之前讲了 sda,双等于了比的是在站中的这个,站中的这个什么,呃这个,嗯值对不对,那么这个 sdl 1跟 saddler,他们在站中存的是什么,存的是这个内存地址对不对,存的是这一块的内存地址,跟这一块的内存地址,那明显这两个地址是不一样的,所以呢这里肯定是会返回过 plus 啊,好 sdr 1跟 trusts 3那么呢,str 3就是由 str 2复制值对不对,那么通过这个等号复值复的是什么,复的就是引用地址啊,所以这里同样返回为复死,好了那么第三个 str 2跟 str 3,t r 跟 str 3的肯定是相等的嘛,t r 跟 str 3的肯定是相等的嘛
你是直接复职的对不对,那么这里比较的是,战中的值对不对而复制了,复的也是战中的值啊,就是那个移动地址,所以呢这里我返回为处,而至于这个一口死,一个是我们刚刚看了这个这个试卷呢,因为他已经重写了这个,一口四方法,他对比的呢,是这个两个字符串的内容,是说白了就是对比的,这里面的每一个字符对吧,那么,这里面每一个字符肯定是一样的嘛,那么这里呢,肯定都是返回为处不管你怎么比啊,好那么以上呢,就是这个双等于啊,跟 Pecos 的这个面试的这个,笔试的内容啊,