00:00
那关于这个ES的话呢,我们算是就讲完了,讲完以后呢,我们还回扣到咱们一开始提的这个问题,说这个等等和equals呢有什么区别,这是咱们最初呢抛出来的这样的一个面试题,那这个面试题的话呢,现在大家就应该都会答了,那首先呢,我们看下这里边一个PPT说呢,这个问题从面试的反馈来看,85%的求职者都理直气壮的回答错误。什么叫回答错误呢?就是说我现在呢,自定义的一个类,我自定义这个类呢,我去造了两个对象,这两个对象的属性呢,值都是一样的,比如说啊,这个叫to姆,那个叫Tom,这个年龄21岁,那个也21岁,说问这两个我用ES去调的话呢,是true还是false啊说85%的这个求职者都理直气壮说是个处啊啊这个错就错在哪了呢?对,就没充血,说白了就是这个这个,因为咱们开发当中经常会用这个string,就是人家已经定义好的这样一些类,我们用string的时候呢,都知道大家比的是内容,所以你会误认为呢,我们自己呢,定义的这个类呢,也默认的情况下比的是内容。
01:05
说白了就是你会把这个object当中那个E方法误认为比的它就是那种,但是事实上呢,Object它是一个负类,它是很很很虚的一个东西了,他写不出来具体有哪些属性,只有你子类才知道有哪些属性,所以额债当中呢,没什么选择,他只能是简单写一下,因为我哪知道你此类有哪些属性,我怎么去比内容啊,是吧?所以我们这个当中呢,它比的是等等,那就意味着对于我们自定义的类来讲,你要是没有重写过,那比的呢就是等等。你重写了,重写的话呢,通常比的就都是内容了,所以这块呢,大家一定要小心,在面试的时候呢,把这个事呢要说清楚。也就是说答这个面试题的时候呢,这个等等呢,首先呢,描述一下这个很简单,那么equals的话呢,大家基本上呢,需要把这个事儿肯定要提出来的,以及呢,我们这个事儿要说出来,这个事儿的话呢,你很清楚,因为开发中常用。
02:02
啊,就是把这几个问题呢,大家描述清楚呢就可以了,那这个问题的话呢,相当于就是个满分啊,就不会有任何问题了,行,那我这前面的话呢,这还放了一个关于这个呃,重写equals的一个原则啊,这个大家看一下就行了,嗯,有点像这个数学上的一个定理证明一样了哈,这个equals我们重写以后的话呢,它满足这样的几个特征,或者叫特性,第一个呢叫对称性,说X equals y,反过来的话呢,这个就是你这样是个处,反过来呢也是个处。这是这个问题,然后下一个呢,叫做自反性,就是X呢equals X它自己跟自己比呢,肯定是个初,下个叫传递性X equals y呢是处,Y呢跟Z又是处,那X跟Z呢也是处,那一致性就是我们这个X equals y的时候呢是个处,只要呢,你X和Y的内容呢一直不变,不管呢,你重复多少次比它都是个处。这就是前后是一致的,嗯,下一个呢?在任何情况下,X equals no永远的返回是一个false。
03:08
这个要注意,就是这个no的话呢,跟谁比的话呢,这个都是一个false了,那有同学会想,诶,我反过来写我no equals X行不行,No equals X,这是不是就直接控制人异常了,所以呢,咱们就不能这样去写,就是这个情况,所以这里边呢,其实又抛出来一个小的问题,就是大家呢,平时在比的时候,X equals y,你你你最好先判断一下这个X是不是个no。他要不是闹了,你再去比。那如果你后边这个是一个明确的字符串了,比如说就是一个ABC啊等等,你就把这个ABC呢写到前面,那就保证呢,它至少不会说在你这个字符串点的时候呢,会出现一个控制针,哎,就这个意思啊行,这个事呢,大家小心一点,然后下边下边的话呢,说X equals和X不同类型的对象永远是false,这个显然了,类型不一样的话呢,那就连比都没法比,或者都不应该去比,那肯定就是false了啊这呢是我们重写equals的一个原则,这个呢也比较好理解,大家一看呢都明白啊,那就可以了,行,那这呢是我们再把这个equals呢又强调了一下,这样我们去写的时候,包括我们这个面试题,大家该怎么去答,那课后的话呢,有这个练习题啊,这个练习题。
04:25
这就比较简单了,就这呢,主要就是考察这个等等的,那首先看一下第一个。出二放散。处不用特别关注这个类型,有个自动力提升的事儿,这个呢,It是它它和我们这个he,它这两个出。12和我们这个12,就是这个竖12和我们这个12这么着,对,这也是出接下来两个string这两个等等,False这个等等,永远比的是地址,然后这个人家是不是重写过啊,所以这是个,然后下边说hello跟我们这个date。
05:18
怎么着,前面是一个string,后边是一个date,对类型都不匹配,所以这时候连除跟false的资格都没有,除跟false的话呢,至少编译和运行都不报错,你这呢,是不是编译都报错呀?也就是说呢,我们这个等等符号,咱们要想能让它比呢,首先呢,你两边这个类型呢,得能够统一成一起,这不是跟咱们刚才那会说的波尔型不一回事吗?你布尔型跟这个其他的类型之间就没法运算,是不是编译都过不了啊。一个意思行,你要这块写的话呢,把这个点写出来也行啊,就是说这是算一个补充了,补充呢,就是我们这个等等符号使用的时候。
06:11
使用时必须保证这个符号左右两边,两边的这个变量类型没说非得相同,我就简单写个叫一致就能统一在一起就可以了。行,这个呢,大家体会一下这个问题,好,这呢是咱们这个客户的关于这个问题。
我来说两句