00:00
啊好,学学习,不急不躁,我是LG库C,欢迎大家来到我们罗辑教于公开课直播课间啊,那么今天晚上啊,由我给大家分享一节关L的大厂面试题啊呃,那么这份面试题的话是由呃阿里腾讯百度啊杂糅的面试题啊,其中有一道题的话已经被好多大厂公司被问到过多次啊呃,大家有没有预习过这几道面试题?呃,需要给大家时间吗?需要给大家时间吗?好不好?给大家呃五五到十秒钟的时间思考一下,我们从哪个题开始讲起好不好,从哪个题开始讲起,然后什么呢?呃,然后开始往后面的分析好不好?呃给大家五五到15到十秒。五。6790OK啊,那么分析完了啊,那么大家想先听哪一个,先听第一个是吧?先听第一个是吧?OK,好,马步同学想听第一个啊,那么第一点啊在于其实我不太喜欢讲面试题,讲面试题的原因在于什么呢?就是呃,因为讲面试题并不是只是简简单单说把问题回答到位就OK,就是说明,比如说第一个面试,第二是方法的本质是什么?就是消息,那么S1是什么呢?方法编号MB么呢?MB就是什么呢?那个像函数指针,指针两者关系什么呢?哎,就是一对应关系就回答了完了,但是你没有发现一个点啊,但是一个非常非常特殊的点在于什么?如果说你这么去回答面试官的这面个这个面试题,可能你也会回答这,呃,回答到位是吧,但是你没发现,你这么回答很难拿到offer法。
01:34
很难拿到奥吧,对,你会发现今年的面试比去年又不一样了,比去年又不一样了,他不再是今年的说你能把这个回答到,而是真正的要对他有所理解,那么这道题你觉得我们应该从哪些方面来进行解释分析呢?对不对,好,那么首先第一点我们当前是不是方法。思维方法OK,好,那么这个题如果是我要去回答这个题,我觉一点应该从以下几个方面去讨论和交流,诶,漂亮,诶,就说梁耀文同学啊,哎,干得非常漂亮,就all my send,所以一点我们把这个面试题复制过去,然后怎么样,然后直接,呃,等会我确定吗?先从第一个开始,还是先从哪个开始?
02:22
我先遵循大家建议好不好,先从大家建议啊,从第一个开始好不好。我们,呃,就是。可以吗?可以吧,可以的,给我扣一啊。呃,有没有特殊的要求没有啊,好,那么来吧,嗯,奇奇怪怪的,那么首先第一点我们就直接点开当前的什么呢?呃,差点给了VIP啊,那么大场面试题里面的一个什么呢?一个小小的DEMO。呃,那么这里有个DEMO,就工作就是就是这个家伙,OK,好,那么在这个地方我们首先做一些事情,比如说这是不是一个方法。对不对,是不是这是不是一个方法,那么这个方法我们怎么去展开分析和讨论它嘞,对不对,很多人说了就是obviously message send receive is呀,那个什么呀,那个其他的一一大堆的东西,那么老师这个什么东西,好多同学是不是还没有感觉啊。
03:16
对吧,好,那么这个地方怎么分析呢?那么我们的op是怎么来的呢?如果你是一个真正玩过的人,肯定会这么去找,比如说所搬,所搬了之后接下来做些什么事情,那当开点开当前的终端做些什么事情就行了。行吧,如果当你,呃,如果说你想去玩底层,你不知道这个底层是什么东西的时候,你把它请编译一下,那么因为我们当前的OC在底层是什么呢?C或者C在叫做超级吧是吧,OK,好,那么此时刻他C是吧,他说那么此时时刻我们当前编译当前慢点MIK1回车啊请看这里开始不断编译啊好,编译过程中就会生成了一个什么呢?慢点11啪啪。
04:00
那里是是个C加加文件吧,把那么当前点开吧。好,点开它这个东西之后,那么老师我的天呐,这个这么长是吧,长的有点疼是吧,你们喜欢长的还是喜欢短的啊,反正我不喜欢这么长的,反正什么呢,让这个什么呢,这么多东西感觉很难受,如果说这么一个过程从一行一代码一行代码去分析,那么这节课光讲这个都不够,光讲这个都不够,那么怎么办呢?作为金牌讲师,我告诉你们来对症下药,我们那前是不是从我们当前的慢函数进来的,我们编译是不是慢函数,慢函数进来是不是当前工程数一个n s log不管了吧,我们的研究重点是不是这两行代码LG person,然后什么呢?调用当前的c something这个方法。See something这个方法吧,好,那么此时此刻请看到这里好不好?请看这里来,这是什么?Opportunity see me send,然后接下来做一些什么事,是不是强转,强转了之后接下来是不是一个参数一和参数二。看到没有,是不是参数一和参数二,那么这就是我们当前刚刚有很多小伙伴就回答的一个点,什么方法在底层的本质是什么?是消息,是消息,发送消息,消息最重要的两个东西是什么呀?一就是消什么消息的什么呀。
05:15
AK,消息的接收者加什么消息什么消息的主体吧,哎,漂亮,现在我们每一个人都能够分析到这里对吧?好玩到这里,你难道觉得他就是面试官所需要的吗?不是方法名哦,不是消息名哦,就消息主体,包括当前的方法名字加什么,加相应的下边所引的那个参数,你看下边那个标号,对,它是叫主体啊,好,明白这一点话,接下来我们继续往下面走啊,老师接下来还要讲什么,还要讲很深,这里面的水还真的很深啊,那么这个深的点在什么呢?我们先把它停一下,我们把它留点空间,然后再来,先把后面的容易的先答完好不好?
06:03
先把后面的溶液打完,那么SEL是什么呢?就叫方法编号。好。方法编号,那么我们的rnp是什么呢?就是我们当前的函数指针。地址。RMP函数值。真地址,那么老师,什么是方法编号和什么是函数指指针这个东西奇奇怪怪的,这两个有什么关系呢?来请给我做个比喻啊,那么比如说在这个过程中,不知道大家有没有买过一本书。不然不知道大家有没有买过一本书啊,呃,大家买书多不多,是不是还挺多的吧,不知道这本书大家有没有听过啊,叫做呃,叫做呃,KC的自我修养啊,这本书啊,非常非常的火片情楚啊,火片那个什么江南啊,江南的一本一本非常非常牛逼的一本书啊,我不知道大家有没有去听过啊,但是我有一点啊,今天你可能就听过了啊好,那么KC的自我修养这本书的话,里面其中有一个篇章我告诉你好不好,其中有个篇章就说了。
07:04
长得很帅,水长得很帅啊,并且还有一个片叫什么呢?呃,酷CI那个什么呢?呃,技术比较强,是不是库CI比较强好,那么还有个什么呢?就是苦水臭不要脸矮苦水臭不要脸好,那么那么接下来我也不知道到底苦水长得帅到底是因为鼻子高还是呢,还是脸蛋好,是吧,谁知道呢,爱奇奇怪怪的,我只知道这本书里面有这么一个东西,但是我又不知道在哪页,那么这些我们首先第一点我们应该去怎么找,首先第一点买到这本书。你肯定去买的这么舒服,京东还是淘宝随便你好不好,你开心怎么好,翻开第一页就什么就是目录,就是目录,目录吧,好,目录知接下来你是不是开始,诶不水长得很帅哎,就在这么一个夜,是一个页码,是个名字吧,是不是找到这个人的名字,然后是大家找到这个页码,好那么接下来周期什么事情,我到底看一下这个鬼到底是真的假的是吧,万一是糟老头子怎么办呢?好,那么接下来我对应的当前的这个页码,就翻到当前的具体里面的页。
08:07
哎,这里面就是真正的guci长得很帅,哎,其实说白了就只有两行是吧,就是臭不要脸的帅,好就臭不要脸帅啊,其实就只有这么多,还占了一页,明白了吗?好,那么接下来我们对标一下当前的这个过程,是不是有一个东西叫做页码。就是MP明白,那么当前的目录名字呢,就是当前的叫sel,你听明了吗?S semp,那么当前的这个具体的内容是什么呢?就是我们真正的函数。内容。对吧,是吧,那么我们怎么办呢?因为我们在上层OC的分段过程中都是什么呢?都是通过指针地址中不断去找到当前的函数里面的一个实现,那么怎么办呢?因为我们经过OC分段之后,首先第一点你能够获取的从LLVM内存。你会获得一个什么呢?相应的一个嗯,变的好了,一个什么呢,就是一个select,一个什么集合,一个什么呢,缓冲去。
09:09
好,呃,这个地方可以从哪里看到来,可以从那个单前的images里面啊,源码里面可以看到。可以看到啊,那么从这个reading Miss呢,这个源码里面可以看到什么呢?当前呢,就会有个SSE的一个什么呢,一张表。对应表,那么对应这个表,然后什么呢?去对应绑定的一个RMP,通过P找到具体的函数实现,明白了吗?明白了吗?好不好来这就是一个什么呢?绑定依赖关系啊,通过SL方法编号,找到MP,那找MP,这再找到当前的函数的内容,OK啊,这一步填的非常非常透彻啊,非常非常透彻是吧?还行吧,空盲人讲课是吧,就是简单易懂是吧,他说老师,呃,我有时候这些东西我懂的,但是你这些地方我没看到过,可不可以给我拓展一下,可以的啊,库门人给大家拓展一下吧,这样大家能来到库门人的这个直播间,我给大家拓展一下。
10:04
那么接下来我们打开了一个东西,就什么呢?就是当前的一个什么呢?Object底层源码,那么这个动作是不是一个reader,当前的什么呢?Image so。是reading面少,那么这个面当前点击进来。点进来,那么在过程中就会发现出什么所有表的信息,那么接下来我们在过程中我们就直接去找吧。呃,这需要大家一定的基本功啊,来有能力的看不有,那么在这个平段里面就会一个什么呢?当前的fix X select的一个什么呢?哎,进行调整,那么这里面就有一张表,S的表呢,什么呢?就是get of select ref,听明白了吗?通过当前的he,什么意思啊,就是当前MYOLD头去当前给定一个什么呢?句柄的一个count,然后什么呢?这些不断的便利,OK啊,非常非常的清楚啊,非常非常清楚,OK,点完这里好明白这一点之后,接下来这两个比较有利的点我们就比较清晰了,比较清晰好,那么老师,老师你刚刚不是还在前面留了一个坑点吗?这个地方除了消息还有其他的东西,比如说那些消息,我们还要补充什么呢?注意消息在底层真的很多,真的很多,首先第一点,我们是不是经过object message send,它是属于什么,它是属于汇编层面的什么?
11:19
会被什么?什么叫做快速查找?你们快速查找,那么快速查找的查找是什么?来告诉我来,有没有比较在这方面有基础的同学,快速查找,查找的是什么?我。四三。二一哎方法名啊,不是啊,其实针对就是那个方法名,还有什么是不是叫做KT呀,是不是啊,TTT缓存嘛,是不是缓存,首先第一点我们能够快速查找,肯定是从缓存里面查找的,就是我们每个人编码习惯器,什么意思啊,就是我们不可能随随便便,第一点就是什么呢?开始便利其他的这些慢速的流程,首先第一点要查找,肯定是从快速的缓存列表里面去查找。
12:08
明白,好,那么接下来如果在这个缓存列表里面找不到相应的什么呢?Catch。也找不到就是,呃,最终什么呀,底层就是什么呀,通过catch的这个T找到什么,找到那个buck了吧,哎,是不是是找到八那个筒子啊,最终找到相应的绑定关系SE和RMP吧。呃,能够明白吗?啊,没关系啊,没不能明白没关系的啊,我们就一点点来好不好,一点点是吧?呃,这个地方需要我详细讲一下吗?哎,人生觉得们这个地方需要我详细讲一下吗?需要是吧,OK是吧,非常需要是吧,嗯嗯嗯是吧,啊讲一下吧,好不好,作为金牌老师我能怎么办呢?好,那么赶请点击object message send好不好,OK,就是你们要你一定要跟我说好不好,你们一定要跟我说,你们不跟我说,我怎么知道你们要呢,对不对?哎,要就要说出来,大声的喊出来啊好,那么当前怎么来呢?还是来到object message send啊,那么在这一层里面,我们当前点开了object send这种东西啊,要的挺多啊好吧,那么到你是不是点开了这个价伙。
13:19
来永远的命,你不是上VIP吗?奇奇怪怪的,不要来管课了,不,那么在过程中他是有会编写的啊会编写的,那么在过程中我们当前点开关掉关掉关掉关掉啊关掉。好,继续关掉,关掉为什么?因为它是会编写的,我告诉你们好不好会不掉,那么会编写的话,我们直接查找是什么,查找这出点S,明白这个后缀点S,这个点MM的话,就不是你查找的范围了。OK啊,我看见。没S就是什么呢?就是三三,那么接下来我们找的三是什么呢?就是264 M64什么意思?因为我们现在S的开发就是M64。OK啊,V7群呢,祝你前途似景啊,一片光明啊,蒸蒸日上好不好?那么这个地方我就不看到了,来查找二姆六四的一个汇编好吧,那么安式的话,接下来汇编里面直接找到当前的什么呢?就是安全里面进来进来了吗?进来工作我们当前去找什么呢?诶嘿,看到没有就cat lookup诶这个会变比较简单啊,来邓姐是不是点击找回啊,找这里面吧。
14:25
Catch up,那么这个catch up的话是一个什么呢?是一个红地的点micro micro,那么在工作B器能够快速的进行什么呢?进行识别,那么接下来会点击在工作室lookup的star里面什么呢?从当前的到了一到了一啊,那么接下来去过中我们从整个的开区里面进行平移,因务过中我们有个对象一个1S1收过中进行什么呢?内存的平移,找到相应的一收,一收再进行什么呢?与算得到当前类类的结构里面再进行平移,得到什么呢?得到catch,因为我们这个类的结构里面什么呢?就第一个叫什么,第一个叫什么?哎,第一个叫做我们前的一收,第二个词啊,第二个结构是什么?第二个结构是不是我们当前的super class,第三个结构为什么呀?是不是catch t第四个结构,为什么呀,当前的big。
15:10
没问题吧,啊,非常非常清晰啊,因为大家,呃,真的我觉得大家没有反应啊,大家开发20多少年了。呃,只有一万人币啊,只有1万的币啊,呃,碧云无度同学啊,没问题,四年了,呃,三年了啊,十年了,那翻天应该没问题的啊。OK啊,四年左右啊呃,根据大家的情况,我们来讲课啊,因为这里不是VIP好不好,我们可以讲慢一点啊,我们就呃随性分享,随性分享啊。三到五年居多好不好?挺闷的。OK,好,我们就慢一点好不好,慢一点没关系的啊,就是然男人不能太快好不好,一定要持久啊。那么在过程中是不是有个当前的catch,通过当前的mask and巴S是不是找到当前的什么呢?内存结构里面最终找到了一个什么呢?就是诶这个家伙CMD与算了当前mask这是什么呢?就是一个哈希什么下标,因为在过程中存储的肯定就是个哈希的存储嘛。
16:10
对不对,所以哈就输错,那么哈,就生活中是不是找到相应的bucket时8ET是过程中我们是就开始进行平移,找到当前的RP and sel的这个绑定关系,就是在当前八所在的什么呢?指针地址里面,哎,漂亮看到没有,So easy so easy看到没有?诶,我觉得点这种开发的学习一下子豁然开朗好不好,这才是真正的底层明白,而不是去背面试题,背面试体是没有意义的,我告诉大家背面试题你永远拿不到offer,至少你拿不到真正的高级offer好不好?好,那么接下来是不是找个这一层通过了外编的快速查找流程,那么接下来在什么,在是一个比较慢的什么。是慢速查找流程。慢速有快就有慢的吗?查找那个慢速查找流程是吗。
17:01
是不是开始便利查找?给你什么?变利我们当前我们每一个类,它必然会有一个什么啊,这个method什么OK method MIS是method MIS,哎,对,方法变号方法列表,哎,非常聪明是吧?好,那么如果说自己找不到,自己找不到,那么接下来根据继承人的关系,我们是不是找到负类。最终找到什么呢?No,这也是为什么OC具备什么。具备什么,具备继承关系啊,中国面试考的就是经理啊,真不是真的啊,行云同学啊,真的我告诉你们,真的就是你可能没有去大场面试啊,其实你这种背的话真没有意义。真没有意义,真的。真的好吧,我能理解你,好吧,我能理解你,但是我觉得真的在呃,我们我们很多VIP啊,都是京东阿里的百度的啊,跟你说真正的过程中,其实不再去叫你背。
18:03
是吧,背不了的是吧,还在于真正能够理解,能够你自己玩过,你比如说我,我会去背吗?我真没有去背。我是一行一行来把去分析出来的。明白我为什么能这么熟练的原因,因为我这个地方,我的大师班里面就是讲的不止一遍两遍,明白我给你带来这么多班级了,所以他非常的清晰好不好,除非非常清晰,一定是理解的,我跟你说死你就四个小孩都知道死记硬背考不上大学。好不好一定是理解的,尤其咱做什么,做理工科的,搞计算机的。搞计算机的话好能理解啊好,那么接下是不是NS是吧,那么这个地方查它主要的流程是不通过了一个什么二分查找流程,二分查找流程好吧,好二分查找流程,比如程啊,那么接下来转慢速查找流程,找不到的接下来就会进入转发流程,转发流程的过程中,就是第一个就是什么呀,动态方法决议。
19:01
对的,方法解过中又分为当前的对象方法和什么呢?和当前的类方法,那么对照的对象方法和类方法过程中又会来去识别,如果说你这个地方的原因在于什么呢?就是我们当我们查找都找不到了,为什么还要动态方法决意呢?因为苹果是一个非常就是于细节安全性能的一个什么呢?哎,系统啊,其实真的R开发你不是在早期啊,现在安卓开发现在还挺不错的,但是我跟你说在早期里面你没有发现我们的I iPhone可能是的1GB2GB就能干,人家是安卓的什么呢,4GB。是啊是啊,可能现在性能强起来了,性能强起来了是吧,但是现在你比如说iPhone的当前的什么呢?这个相应的性能同对比来说还是真的不错的啊,在系统方面的细节啊,是比较精致啊是吧?好那么这个动态,那么问他的原因在于什么呀,因为有可能我们的开发者就会犯错误,犯错误我们就得给机会,给机会什么意思啊,就是比如说我们当前方法,在方法里面找不到,为什么找不到的原因什么呀,因为OC具备这个地方,是不是能够查到当前的什么呢?一个。
20:09
继承。这个继承。OC的特性是什么,但是因为OC里面还有另外一个特性叫什么呀,就说多肽。堕胎?是,那么什么意思?他所有的编译报错怎么识别?它要推迟到什么呢?相应运行时期。月时期对吧,所以说运行时期才能真正去识别吧。所以导致了他什么点很容易犯错误,那么很容易犯错的话意为啥?如果说你不给他相应的机会,那么意味着开发者我很哭啊,我很烦呐,那么因为在在这个过程中,动态办决业就给了开发人员第一次机会。对不对,只要你使用这个方法,这工作进行调整,那么一样让你这个方法通过通过啊,那么第二次就是什么呢?接下来我们就会通过什么呢?相应的下一个流程。
21:02
三流程怎么就是转八流程?转发流程又分为什么呢?就说慢速转发流程,呃,快速。快速转发。好。慢速转发。快速转发就什么呢?直接响应,如果说我不能响应这个方法,那么请你给另外一个能够响应他的人是吧,啊就是呢,呃,Respond select那个东西是吧,那个方法我从新没记好不好,那么慢速转发流程什么呀,开始我们接下来针对于当前这个方法的什么呢?签名。签名然手呢,进行一模可省当取的方法,进行慢速转发流程,那么其实我们很多看到很多的一些什么呢,三办的库啊,比如说买点统计的或者什么呢,一些呃一些什么呢,处理一些bug的一些东西啊或者什么呢,进行后的一些什么的框架,经常也会在什么呢,第三次也就是我们当呃最后一个流程就是慢速转发流程,在我们当前什么呢?就是VO的环节进行什么呢?处理吧,是不是进行处理对不对。
22:03
为什么?因为在第三次环节过程中,我们能够拿到更多的可自由的东西,比如说单纯的select。Select以及什么,以及当前的什么呢?诶当前的target,也就是我们的方法对不对,那么通过了方法编号,通过我们的什么呢?那个叫做签名。签名可以搞到什么?可以针对于当前的什么呢?参数和返回值。返回值。可以得知到到参数返回值来UB同学还记得吗?在我们讲到大师盘那个就是我们那个,嗯,主教开发里面那个比还有的时候我们还记得吗?就是那个在那个返回值类型式通过那个签名来确定的啊用的密还记得吗?记得吧,应该别取消啊,OK啊。啊,老师忘给你了啊,好好干得漂亮啊,老师应该不在了啊,好来就是这个地方,那么整个的方法的流程,我觉得点还是需要大家什么呢去理解的啊,去理解的,还有这个过程中,那么在整个过程作的一些什么呢?呃,牵扯的一些东西我就没展开的去分析了,希望大家在接下来的什么呢,课后能够认真的去什么呢,去复习好不好?
23:19
呃,你提什么问题来着,是不是这个签名的返回值怎么去读,就是如果去怎么去读当前的返回,呃,这个方法的返回值类型。返回去也行。来五四。三。二。一。是不是通过那个签名就那个呃那个呃at那个什么type类型还记得吗?艾那个tap类型来针对的,比如说当前如果说我们其实我们那个环节是么?其实我们那个环节是那个做那个。做那个。呃呃,那个叫什么,呃,叫什么去啊。
24:01
哦,就是解依赖,解除依赖关系嘛,找到相应的他给的去实现那个什么呢?实现那个什么呢?那个方法嘛,对不对,他给的过程中,我们是不是通过了什么呢?就是那个里面直接拿出来吧,那么当前的返回这类型我们是不是开始包装,如果你是对象类型返回的话,那么就直接简单performance sta。如果是不是的话,那么就通过梳理啊,好,那做这个流程啊,好,那么整个的一个方法流程就是从我们这个题目就会牵扯出其实很多真的很多,希望大家不是只是简简单去背面试题好不好,如果大家是觉得在这个过程中需要面试题的同学,也不用担心空某人给大家提供的一份面试题啊,把除了这些我们今天晚上的讲的这五个面试题之外几个面试题。几个面试题我看,呃,六个面试题之外,还有就是我在过程中提供给大家一份资料,这份资料是什么啊,就是我本人就是总结了一些,总结了一些相关的一些什么呢,比较实用的面试题,帮助大家在近些年去什么呢?开发呀,或者去面试,面试啊,主要是面试啊,我觉得面试题无非说白了就是为了面试啊,那么这个面试题就说呢,重最重点在于什么呢?就是说第一点啊,我为什么大家其实手里每个人几乎都人人都有一份什么呢面试题,但是我部门人为什么还要提供大家分面试题的原因呢?
25:16
因为什么呢?因为我看到网上很多面试题都有所什么呀,偏颇偏颇,那么这些面试题是由我整理的啊,呃,整理的,然后我当前这个库还在继续持续的更新,还是还在持续的更新,那么我还还会继续更新,呃,现在大概有三四十套左右的面试题,那么接段时间我们在VIP结束之后,我们接下来会把整个的这个什么呢?这个文档会扩展大概大概到什么呢?200道左右。200套左右对吧,200左右,希望大家什么呢?就是呃,就是说白了就是。第一点嘛,去找工作,来到罗教育,你不带点东西回去,我感觉对不起大家,我还是一点,就无论大家选没选择罗教育的VIP,我觉一点我还是做一个知识,知识付费的分享者,我愿意给每一个L的开发人员来提供一些学习和精神的方向,当然如果说你要选择我学习可以更好好吧,可以更好好吧,那么这个面试题的话,就是主要是关于底层呢,算法呀,还有网络啊,还有底层的一些什么呢,一些意向啊,或者等等的一系列啊,就比较诸多好不好,那么底层的分析都是通过mark蛋的一些语法排版的,非常非常的完美,包括我们今天要讲的那个什么呢,关于分人病面啊,这些什么优化的一些环节,都在这里面都有,在这里面都有,好不好在里面都有好不好,那么大家可以通过什么呢?我们官方助理老师,第一点我们来总结一下,总结一下第一点在于什么呢?方法的,对于我们本身的这套面试题什么呢?字面量上的回答就是什么呢?就是这句话。
26:49
方法,消息的流程,那么这工作如果方法接下来你要给面试官更好的体验,请你回到消息的底层的一些逻辑和原理,原理那么包括当前的S和MP的关系。
27:03
那么比如说在当前的market层面等等等等一系列,你还是可以的,好不好,可以的啊,继续往下面走,不断的分析,不断的探索,底层的学习,它不再是一个字面的意识,不再是个字面意识,一定要回答到我们当前的本质上去提层,好,那么接下来我们的第二个面试题来自于什么呢?帮人并阅啊,那么当年就是,呃,就是那一波子人啊,就整了一个奔人病院啊,奔人的命是依就什么呢?就是。在空中我们当前是不是有这么一个方法,就是LG person当前的lock当前是不是就会调用个I say something啊,回来没有回来的同学来一波二好不好?来一波二啊?呃,我怕你们没有回来去拿资料了。OK,好漂亮,非常非常多的小啊,小伙伴一起回来了,我们一起往前走,那么是不是可以正常的调取方法,那调取了方法之后,接下来我们在过程中我们做一些事情好不好?就说你既然你能够这么去调用的话,我们是不是在这个地方,我们也做一些事情。
28:04
好,那么请问是否能够调起来。就这么说吧,首先第一点我们能不能进行编译通过?单子过中有个LG person class有个class CLS,然后什么叫class的指针地址给了当前KCKC之后,当前KC一不小心就C了somethingc something之后,请问当前是否能够编译通过?能编译通过的同学扣一,不能编译通过的同学给二。可以吧?啊,不能吧,奇奇怪怪的,这个是啥呀?哎,是不是有点让人匪夷所思吧?是不是有人匪夷所思?OK,好OK好,很多同学还是有问题的啊,很多同学有问题了,好,那么接下来编译通过build success来张杰building来success点通过了,好那么接下来的第二问就来了,这为什么?我的天呐,哎,你这奇奇怪怪的,我当前LG person的确里面有个什么呢?Say something方法我能理解是吧?打印当前的这个什么呢?啊,杠方式,但是你这个家伙是什么意思啊,是一个class的这个类取的底证地址啊什么呢?Something,它为什么可以这样?
29:16
是吧,他为什么可以这样,对不吧,我搞得很奇怪呀,好,来,接下来解释,其实任何的问题都一定要从什么呢?我们的方法的哎,底层原理啊,你那么牛逼,汉克老师知道吗?哎,我们都是知根知底的好不好?哎哎哎,我知道他的底啊,你知道我的事,哎,来,奇奇怪怪,不要去说一句奇怪怪话啊,来那么当前那当前工作首先第一点,我们这工中我们为什么LG po能够得取say something。这为什么呢?因为当前过程中,首先第一点我们是不是有个对象,对象过程中进行以当前LGP为模板功能过程中创建出了这么一个对象吧,是个对象,那么接下来从我们当前的这么一个类结构里面,这是一个我们当前类。
30:05
好吧,就是一个普通的类吧,类的内存啊,当前的一个对象。对象。AAA好对象啊好,那么我们为什么C,其实我们的方法存在里面。存在我们当前的什么呢?Catch或者当前的beats里面是吧,是不是catch bits里面嘛,好,那么它能够找到的原因在于什么呢?我们首先第一点是不是存在整个的当前论里面,他惯着对象去找,哎,对象有方法吗?对象没有方法的吗?哎,请记住一个点。呃,方法存在哪里?我先问一下方面存在哪里面。存在哪里?来告诉我。来告诉我。来。分列表吧。是吧,那对象哎,漂亮啊,如果你是对象方法。
31:03
请你存在类里面,如果你单曲是类方法,请你存在什么,请你存在圆类里面,原类什么单前的方法列表,不信你可以通过ma o的编译或者什么呢,通过底层的分析可以得出来啊,我这个地方就不做一一的探索了啊,我觉得一点,这是一个做I的什么呢?哎,应该应该知道的,但是可能很多同学都不知道,但没关系啊,我们这工作就不详细的讲解好不好,不影响你的理解好不好,那么当心这个方法。是不是存在我们的那里面,那么我们当前的对象要找到这个方法,必然有一个东西去指向什么,A指向当前的这个类吧。是吧?好,那么这个家伙叫什么?请问这个家伙叫什么?这个家伙叫什么?告诉我。哎,呃,漂亮,哎,还是心有灵犀啊,一点通,那么一搜它的指针首页地址,这个指针在哪?是不是在当前的对象里面呢?对象的指称地址,第一个地址吗?也就是我们当前对象的地值是不是只向了当前那里面大开好花花呀,同学那里是不是有这么个东西,然后接下来去找这个列表啊好,就数地址吧,对的院面是吧,数地址好,那么接下来我们再看一下我们当前的。
32:17
克拉是不是有这么一个类对象吗?是一个这么个对称啊,好类对项的这么一个有个东西。是不是这个东西。有一个什么呢?一个指针地址KCKC,指向什么,指向什么告诉我。KC是不是指向了这个地方?是不是指向了当前的class啊,是不是也指向了当前这个类项,哎,那么既然你这个地方的这个person能够say something,为什么我的KC不可以,你是一模模一样的道理啊。你是一模模一样的,你的对象指向这里,我的KC也指向这里。为什么你可以写something,我不可以呢?所以这道题目为什么他可以他也可以的原因听明白了吗?是一摸摸一样一样的道理。
33:06
是不是一模一样的点来KC是不是指向等级class,哎,有意思吧,好,那么接下来我们继续往前走啊,好来。好老师真可爱,别闹,哼,好来。那么在这过程中是不是意味着在这一层能够实现了,但是是否能够打印呢?或者这个地方打印什么呢?这是我们应该去探索的吧。是吧,好,是不是应该去探索了?是吧,好,来看看他是否能够赚到一。如果他能够证能力,所有的验证都得以佐证,所有的啊,所有的论点都得以佐证啊,来我们。让。来,试试hello前面的hello方法,来,LG person say something LG person say something,太漂亮,诶,非常完美,好完美到这一点之后来大家能跟得上吗?
34:00
跟么上是吧?哎,对吗?跟着上的老规矩,应该做些什么事情,哎哎,是不是啊,要记得听老苦选择这课的同学一定要时刻保持,我再给你暗示暗示,一定要扣六明白吧,OK,好,那么明白了这一点之后,接下来我们继续往下走啊好,明白了这一点之后,接下来我们在做一点好奇怪的东西好不好,我们在做过程有个KC内啊,KC内的我等于什么呢?呃,等于,呃等于就做LG库C啊好,那么在这过程中我们做些事情,在这个地方就是稍微打印一下啊。好打印一下是什么呢?当前的这么一个家伙。KK。啊哦,我们guc啊,我叫guc也叫KC啊,那么在KC过程中,我们当前的这个方法打印什么。是不是打印一个什么,是不是打印一个。这个地方会打印什么,不是打印那个方法之后,接下来是不是打印个律对不对,是不是打印个六没问题吧。
35:00
因为当前的这工作,当前的SKC没有负值啊。没有复制吧,所以打印是个列方,那么请问这个地方会是什么样的呢?诶诶来,如果你把这个地方玩明白了,那么接下来你对于整个软件的理解和内存管理和内存品率方面的指针,你又有一个新的高度了。其实I开发,很多人说I开发培训出来的,尤其是培训出来的,他的根基非常非常的差。非常非常差,可能说嗯,就是一旦说到培训出来多少接线什么呢,就是呃,一般都不想面试的。但原因在于什么?最基本的一些底层的指责,内存都不知道,所以这是大家应该好好去克服的,明白吗?所以希望大家在这方面加把劲,加把油好不好?呃,给你要发出消息说一声呗。对吧,爱开车的汉克老师的提鞋工,什么是汉克老师提了一个什么呢?提的又说了个,正好我回头跟汉克老师说一下啊。
36:01
好。是不是给你啊。好吃腻的同学给CALL1啊是是吧,兄弟,被KC粉吧,不要这样啊,你打印那名字,嗯,还是经过了吧,肯定不是那么简单嘛,如果那么简单的护士老师还会考你们吗?来,请看这个地方打印。会让你匪夷所思啊来呃,这个地方ns log打印当前的K列看一下啊,这个地方为什么打印报错,打印报错的原因肯定是什么呢?当前我盲猜一下,盲猜就是什么,肯定是那个。类型修饰错误。类型就是我,呃,KC的话。哦,没有错误啊,Copy可以啊。换个时装吗?好,我们俩再换一下吧。摆放20当前的KC内啊运行一下。好运气。哦。
37:00
哦,他为什么会报错了呢?好,我们把它关掉啊,关掉这里。关掉在这里的话,我们稍等啊,稍等日常班车,不要着急啊,我们把它关掉一下怎么的,是不是这个题目搞错了。如果这题目搞错了,那就该死了啊。呃,正常这个地方没问题啊。呃,K群的这个家伙。呃,我们去看一下那个疯人病院的那个面试题,好不看一下疯人病院的那个面试题。可能我把这个面试题记错了啊。内存平移的面试题好,来看一下啊,分人变阅的面试题在哪呢?稍等啊,不要着急啊,这是一个比较有意思的一个节奏。好,一不小心我们的资料大家可以值得拥有一半啊,因为这个资料里面也有我们当就是我们当前的详细的解释啊。那个再来哈,再来再来哦,在这当前的胃的新鲜class没问题,当前的诶没问题啊。
38:08
哦,没问题啊。听我的哪个地方在上面。LG。在上面哪个什么意思,呃,LG person在上面。放哪里?放在这上面去啊。啊,就不要呗。完了比试一下呗。是一样不错啊。这个为什么会报错了呢?我有点觉得奇怪啊。放上面啊,放放放放放。我的天,哎,哦,明白了,是的啊,是的是的是的是的是的是的,你说的是对的哦,原因的点在什么了?哦,我明白了哦,接下来啊,漂亮啊,这个同学问的回答特别好,还是我们的VIP比较细一点,我们在这个地方做一些事情吧,就是ns string啊,我明白意思了,好,这是对的,N s string当前的一个name等于什么呢?等于啊,酷CI,我自我介绍一下,然后他就不崩溃了啊。
39:09
然后他就蹦蹦溃了啊运行。哎,漂亮是吧?哎,完美是吧?哎,这个地方啊,可能永没有我们的VIP同学和我已经达到心领神会的地方了,OK,好,来请示啊,是吧?是为什么WHYMY不是OK啊,来这个地方我们要好好的去解释啊,好的,解释的原因在什么呢?就是在这个地方,呃,我的建议什么呢?就是呃,这么放一下,我们把它这么放一下,为什么呢?等会你就明白了,我们要接下来就是你对于整个的内存的理解啊,当前的呃,就说内存。因为我当前在那个什么呢,就是麦的项目里面啊,内存平移,嗯,面试题。
40:01
我放一个ns string它也没问题,放一个ns string它也没问题,放一个这个东西也没问题,它原因在什么呢?我告诉你,等会告诉你啊,我们先把它放在这里。把整个面试题,我们把它摘了过来。呃,对于这个题目的话,就是要这么去解释,那么在这地方做一件很简单的事情吧。这个地方叫什么呢?就叫l LG person啊,出去面试请教LG person,你可能会有惊喜啊。OK,好,来运行。好,那么当前在过程中运行,当前总理把它复制一下啊。呃,老师当前报错都有提示啊,什么提示。什么?告诉我。下。好,那么把它先关一下啊,先关一下它是一个麦克项目,麦克项目在过程中没有在前面没有对象的啊,所以在过中就犯了这个错误啊好,那么接下来我们运行吧。
41:00
来运行。LG。啊,那么当前这一步骤过程中,它就运行不会出现任何问题,并且会打印出一个非常非常奇怪的东西,叫做VC,就是我们当前的VI control,那么这个地方因为我们的苹果的电脑性能比较好,也是什么呢?呃,IPHONE12PRO max pro max,那么大家有没有升级big啊?我觉得这个版本的话,第一点这个界面稍微好看一点,但是我觉得稍微界面好看一点嘛,比如说你看这些标签的话,稍微稍看点,但是我感觉呃,好像接外接适配的话有点卡顿啊,我不知道大家怎么理解的。嗯,好类存名的出来的不对啊,跟放上面读取了对的。因为刚刚那个麦里面前面是没有对象的啊,没有对象的。好,来运行吧。好听啊,这个题目我觉得一点就是大家真正拉开差距的地方啊,来看见有刚刚是不是报错,但是这个地方就不报错,那么在这个地方打印出来是一个VC。
42:05
按照我们的一般逻辑,它这个地方应该打印出,那为什么打印出VC呢?是。去。咱出戏吧,好,能力来了啊,能力来,我告诉你刘云,刘云同学你还不服,我跟你说,你真不来,我告诉你好不好?都很多同学都是不能理解为什么在这个地方打印出的是维C,维C的点在于什么?首先。但是如果碰到碰到刚刚那个问题,你背你能背的过来吗?你背不过来的,你这个面试题你知道我稍微换一下,我从当前的这个原原面试题是放在里面。我接下来放到什么样,刚刚的麦里面,接下会怎么样,哎,你背,你怎么去背,背表你自己去理解好,这个地方怎么理解呢?在于什么,我当前在跟你说k c say something,他是为什么呢?Say something。我们已经知道了,好,接下来我们在里面做了一些什么事情?是在c something里面进行的什么呢?CF的什么呢?KC,那么我们在工作一定要明白CFKCD是怎么去搞事情的吧?
43:09
吃。这个K46是什么?这个TC是吗?来告诉我谁吗?是不是单前get的方法?去访问什么,去访问相应的你在这个地方的内存吧。是反映在内存,那么请问当前CKCTC存在里面,TC是不是当前的属性?知识性,那么这时候你就得明白对象的内存结构。对象的内存,对象内存一个,首先第一个指针地址是吗。是吧?是吧,是不是单纯的一说。对第二个是吗。第二什么来告诉我,第二个是不是当前的属性或者什么呢?等等等等一系列吧,比如说KC0啊A啊等等等等一系列依次排开吧,所以当前的KC令在哪里啊,是不是在当前的这个这个地方呀。
44:11
是不是这里K。好,来把它放大一点啊。好,我们是不是接下来我们是跨到当前的这个,诶,那么意味着我们从这个指针地址是不是跨了什么呢?一说八个指针是不是取到了当前的K列,然后去读出来吧,按照我们的一般逻辑所里面懂了吗。对不对,问题是什么呢?问题是在当前的这个流程里面,当前的这个KC。这个指针指向的是什么呀,当前的这个类。这类。啪。指针这个类之后,接下来是吧,指针这个类吧,是不是这么一个指针地址,接下去指向当前的类对吧?好,那么接下来我怎么办。
45:00
我接下来我要去访问当前KC。什么?KC下面的什么。在KC这个指针。指呃,指针。干什么?指针的什么,下面八个字节吧,下面。八个字节。去访问什么?去访问当前的KC内吗?来,我是不是当前过程中,我们的LG po,我们的po对象是跨过了八个字节,是去访问了什么,当前KC是不是跨过八字节,所以当前的这个指针地址。是不是KC这个指针地址。是不是这意思,应该跨过八个字节就什么啊?去访问。怎么去访问下一个直升机值吧。是防下的句子,但是因为我们在整个的指针的压榨过程中,我们的对象是什么呀?是一个压站结构吗?
46:03
先进后出是先进后出,所以在工作我们一定要把整个的什么。在压占到哪个地方,就是我们当前的这个战争空间的所有的对象去识别出来,因为在空中我们当前的LG person它是有这个指升地指示空间的,但是我们的KC有吗?没有吧。那要怎么办?我们就只能顺去访问,只能去访问,那我也不知道是谁呀,那么怎么办?那么接下来我们做些事情,做些什么事情,我们把所有在这个地方的什么。指针地址进行什么进行打印?申请打印。明白吧,来好写了一段对吧,再后中我们接下来从我们当前的self person啊person,好给个person。嗯。好,那么接下来我们把整个的对栈的从person到我们当前的CF工程对指针地址进行了什么呢?平移打印出来,打印出来,那么接下来我们就看一下KC下面八字节之后是什么,那么接下来这里为什么打印BC你就明白了,好来运习。
47:20
好来运行出来,出来了之后,接下来我们把它放到最大化,那么接下来请看到这里,当前是不是LG person没有问题,是不是指向了一个什么呢?KC是不是指向了个什么?是不是指向了当前的LT po损,那么LG po损跨过八字节什么?跨过八字节是什么来,看到没有?是不是当前零叉7F119000A0跟我们当前这个地方是不是诶么么一样呀,指针地址当前的c something。TB800。出来。是一摸摸一样呀,这回明白了吗?来是一模不一样,这就是内存在平移,指针在平移,听明白了吗?对,有,我们是要把整个的对象直接分析出来吧,既然你LG person这个person对象进行平移,那么意味着KC同样要去找到当前的KC面也一要去平移,所以他去找到这个地方。
48:21
听明白了吗?OK,百场情绪,哎,百场完,看到没有来,这就是一个金牌讲师给你对于这道题目的认真的解释,真的解释听明白了吗?非常透彻吧?OK,来值日时刻应该做什么?哎,漂亮对是吧,哎呀。明白了这一步骤,接下来我们再稍微的延伸一丢丢啊,延伸一丢丢啊,其实很多啊,如果大家还没明白的同学也不要担心啊,也不用担心,我们今天晚上也是把相应的什么呀,这份面试文档提供给大家了。伸,延伸的点在于什么呢?延伸的点在于什么呢?就是呃,这个题目我就是刚刚有个同学已经回答了,就是you me这个家伙就什么呢,奇奇怪怪的什么呢?就是呃,帮我回答了。
49:10
就是如果把这个地方稍微改一下。那个类型。的类型是接下来啊,不是改干什么呀,就是耳塞。我们接下来改个善照什么,然后改个in。好,四个KC链KC之后,接下来在LG person里面,我们怎么来把它还原成这个家伙啊,继续打印,那这一点之后,接下来我们再进行延伸,延伸的点在于什么呢?延伸的点在于什么呢?就是呃,这个题目我就是刚刚有个同学已经回答了,就是you me这个家伙就什么呢?奇奇怪怪的什么呢?就是呃,帮我回答了。就是如果把这个地方稍微改一下。那个。类型车接下来啊,不是改干什么呢,就是耳塞。我们接下来改个A3照什么,然后改个int。
50:00
好四个KCNKCN之后,接下来在LGP里面,我们怎么来把它还原成这个家伙啊,继续打印百分号D,打印KC,好,那么接下来请问在这个地方打印什么?Say something啊,来举声了。看看检测一下,大家是否真的理解。检测一下大家是否真的理解。54321好,运行好不运行来这个地方,正如于同学说的一点,访问到也指针地址。看到没有打印出来什么呀,一堆586187184,崩溃啊,能崩溃吗。不过为什么不会呀?是吧,它只是访问到了一些数据,但并不是也指针,这个指针并没有释放明白,因为幂同学你如果说访问的是也指针,它就会崩溃,但是他访问的是什么?访问的是其他的内存数据,所以他不会崩溃。老师,为什么他不会像刚刚一样打印个controller什么呢,这个东西。
51:04
为什么不打印出?诶,为什么。是吧,为什么?因为当前的没有CTRL的是一个什么,是一个指针地指指针地是什么指针嘛,对象吧,它是八字取吧,八字节什么意思啊,你根本都没有取完啊,相当于是什么只取了它一边,所以这个数据在整个内存呢,它无法通过什么呢?LDB以及什么呢?Ns log进行什么呢?动用当前的第member。那他的指针地址过程中,他根本找不到description方法,所以打印出一堆什么呢?相应的了什么呢?这组数据。成这的数据明白了吧,OK,非常非常清晰。OK啊,很爽是吧,就对于整个内存说,能讲一下打印出来的地址为什么是这样的顺序吗?呃,你说什么这样的顺序么?好来这一点,好这个同学问的非常非常的好,来所以第1.lgperson这个肯定没问题吧,这个下面两个对象是没问题吧?好,接下来是不是我们当前的v control controller的原因在什么?
52:10
Controller的原因是吧?是不是当前的里面的一个消息接受者是不是当前的VC。是she,当前的交易基所是VC,那么接下来我们当前是不是一个,哎,我们的real control的一个什么呢?就是那个那那个负类名字。那那个什么呢?那个名字,那个名字呢,那么接下来ready什么意思啊,Readylo就是我们当前的那个方法编号,因为在我们过程中默认会有什么呢?两个参数,一减ID selff,另一个什么。另一个是吧。第为什么,另一个是不是当前的sel的什么呀,CMD吧,CMD是什么?就是当前的方,也就是V的第三,第二个参数什么呀,这就是我们的BC,也就是我们的CF。对吧,所以是这么打印的原因。听明白没有?OKOK,这都是一些隐藏参数啊,在这一部分的隐藏参数OK啊,好理解的这一部分中啊,以梦为马同学听明白了吗?
53:10
来这些参数。OK,可以吧。隐藏参数,隐藏参数我们当前的control了这么一个什么呢?我们当前的通过super这一层发生的消消息者,以及当前在这一层过程中出呢,就是我们当前的实质接受者,以及这一层的LGP就是我们当前的KC,呃,这个地方就是我们当前的什么呀,哎,Person对象。OK啊,这就是个整个的内存,不这样就是还要慢慢排啊,慢给你慢慢去分析整个的结构体呀,整个的结构体的压账啊,还有整个的什么呢?隐藏参数的压账,我们这个地方就不详细讲了啊,不详细讲了啊,有没有时间有限好不好,其实在过程中,其实大家为什么会对这些问题感觉到会有点还会有点问题的,有没有感觉到。对于这种问题啊。你会感觉到我的天呐,你会感觉十足的迷茫。
54:03
是明啊,其实根本的原因在于什么?I现在的普遍的I斯开发普遍以什么以UI和业务为主。To B u业务为主吗?普遍以业务UI为主,所以导致大家很多的过程中都是把加班的时间放在什么呢?写代码,写UI,写UIUI一个项目迭代,一个项目的迭代,一个项目的迭代,但是比如说我们接下来的人,下面个面试题,比如说我们的界面优化,你真的有经验吗?我说建面,就说一不渲染和离不渲染,你都完全没有其他的一些概念。还说想在优化,我连基本的项目都做不完是吧,还block的一些理解啊,新以及什么采购的API的一些底层的东西,根本看不懂,根本看不懂啊,其实原因本质在于什么UI存做的太多,UI存在的套,那么在接下来怎么办呢?其实我的建议是什么呀,就是因为我在过程中,在整个的知识分享的过程中,我的一点就是希望大家能够好好的沉淀下来。
55:04
其实你没有发现这个,就算你接下来很多,呃,我们这一次的话就呃,很明显的,比如说有个37岁的一个VIP 37的VIP老师。我说啊,整个的it开发从安卓跳到,从首先是搞Java开发,到然后跳了安卓,然后什么呀,又跳到iOS,然后接下来发现什么呀,就是他每个行业,他感觉自己像一个全站。讲个权杖,但是薪资照样拿不高。照样打不高。他现在在公司里面就做什么呀,既做安卓又做Java又做什么呀,但是他就是去不了大公司。去不了什么呢?薪资福利高的公司,其实根本的本质上是什么?不在于你懂得多,不在你懂的东西,而在于真正的权杖啊,大家对于权站理解是错误的,全站应该是什么呢?一门精通而多门专明吗?而不是什么?哎,这个会做UI,那个会做UI,其实没有用的,真的没有用的,所以真正的全站一定要布局什么呀,至少有一门。
56:04
哎,你是能够深入什么呢?深入到什么底层的。没有深入的底层都是耍流氓。明白吗?没有收入的底层都是耍流氓,明白吗?好不好?就是普通的界面层开发,说是I式开发的未来我这里。推荐给大家进行怎么样our的高级。进去。我们的VIP因为这一套学习的课程大纲,它涨薪什么呢?在我这一次的VIP里面,在我这一次的VIP里面,它的平均涨幅均是8.9K。对吧。8.9K平均涨幅均值到底是一套什么样的VIP能够让他平均涨88.9K?我希望你能够认真的花五分钟左右时间好好听一听好不好?我给大家推荐一下我们逻辑教的VIP,其实我大家能够理解,我们的公开课分享只是VIP的冰山之一角,真正的系统学习都在VIP里面,那么这个VIP里面我会讲什么呢?你们能够去晋升到8.9K的平均涨幅新车呢?那请看我们罗教育最牛逼的我们的V11系统课程。
我来说两句