1. 实习经历
面:看你实习经历很充实啊,怎么没有留在京东
我:(还好是因为冻结了HC,要不然我很菜,被嫌弃不给offer的事情就败露了,哈哈哈哈)是这样,消费金融研发部,现在是京东金融最大的一个部门了,接近200人应该,由好多业务相近的小部门合并而成,现在管理上特别混乱,特别缺测试,测试的排期都快排到年底了,但是就是因为现在摸不清招人的需求,他们的所有HC都冻结住了,测试天天加班,都不给招人的机会,我就只有走了。
面:那就是说你们老大还是很希望留你的是吧?
我:(对不起了老大,我要替你说谎了,哈哈哈哈)是,但就是因为没有HC,我们老大也很可惜。(我们老大巴不得:你赶紧走吧,公司羊毛都快被你薅光了)
2. 程序局部性原理
面:程序局部性原理你知道吗?
我:emmm,(想半天),没有听过。
面:好吧,现在有一个数组,一个链表,长度一样,但是顺序都被打乱了,然后我们再去调用contains
方法,哪个效率高?
我:emmmm,链表高,因为链表他实现了RandomAccessable
接口,在调用get方法的时候,效率较高,啊啊呸,contains
方法和这个没有关系
面:对,和RandomAccessable
没有关系。我问的是乱序的数据,contains
方法的效率,哪个快。提示,和计算机底层原理有关
我:(想半天)emmm,啊那我知道了,因为数组他在内存中是连续存在的,所以在调用到他的时候,会把调用到的那个数附近的数据也加载进CPU或高速缓存。。。
面:(打断我),对,就是这样的
我:(继续),然而链表他元素的存放不是连续的空间,所以访问效率会低一点。
面:说的很正确,程序局部性原理说的就是这个。
我(恍然大悟)哦原来这个就是程序局部性原理啊。
3. C语言
面:C语言熟悉吗?有没有在Linux环境下写过C++代码?
我:(一脸懵逼)我的C语言是在大一的时候学的,之后因为很喜欢Java就没有再碰过C语言,我只在Linux环境下使用过GCC cmake编译现成的源码。。。
面:哈哈哈 好吧
面:C语言不熟悉啊,那我问问你,C语言申请一块内存有哪些方法?
我:(抓耳挠腮)emmmm,malloc
面:还有吗?
我:emmmm,不知道了
面:还有realloc
,calloc
,那怎么释放空间
我:delete
(???我竟然记住的是个C的,不过我感觉是记混成JS的那个delete
了,结果歪打正着竟然恰好是C的,C的free
忘掉了)
面:好吧
4. HashMap
我:(我这面的凉了吧,怎么老问些C相关的)
面:HashMap
这个字典的一般情况下平均复杂度怎么样?
我:(hhhhh,你可算落我手里了哈哈哈哈,强忍不笑),O(1) + O(logn)
面:咦,你这个说法我还是第一次听说,怎么就是O(1) + O(lgn)?
我:(强装镇定)是这样,如果没有冲突的话,那就是根据k hash之后的结果找到索引值,复杂度就是O(1),但是如果发生冲突的话,数据会被弄成链表连在后面,如果超过8个的话,就会转成红黑树,红黑树是一种二叉搜索树嘛,复杂度就是logn,所以是O(1) + O(lgn)
面:哈哈,其实你想的复杂了,我说一般情况,平均复杂的,就是O(1) 就行了,嗯,看来你理解的还挺深的。
我:(我今早才复习的,能差吗?)
面:你听说过LOAD_FACTOR
吗?
我:(比我女朋友都熟好伐?)默认值是0.75,就是在put方法的时候,会检查map的容量,如果已经到达75%的时候,就会扩容。
面:链表的平均长度是多少?
我:(开始卖萌)emmm,我知道链表转为红黑树的阈值是8,那他最长就是8,平均嘛,4?
面:(笑了)(我记得他说的好像是)8*LOAD_FACTOR
我:(小鸡啄米般的点头)是是是,对对对
5. IPC
面:进程间通信有哪些方法?
我:管道,信号量。。。。。
面:嗯,还有更常用的吗?
我:emmmmm(想半天)socket
面:对,有这个
我:(慌了,想不起来了,没复习这个),想不起来了,好像还有几个
面:文件,共享内存,消息队列
我:(他边说我边附和,显得自己只是忘了而已,好吧,实际上我就是忘了,他一提醒我都想的起来)
面:看来你的基础很扎实啊!
我:这个我们在操作系统里面学到过
面:那你应该学的很不错啊,用的哪本书,课下还看了其他书吗?
我:(。。。。我操作系统范训礼带,考60分,我现在基础扎实??WTF???)嗯嗯,学的时候很认真,我们用的书是计算机操作系统原理与精髓(我自己编的名字,我基本上没看过那两本复印的英文书好吗?【捂脸】)那本书里面什么都有,包括内存,磁盘,CPU,缓存,进程,调度,都有
6. 闲侃
面:(很满意的样子)你们同学都像你这么优秀吗?
我:(WTF???)啊?(我露出了尴尬而又不失礼貌的微笑),我哪里优秀了,进程间通信我才答出来3个
面:已经很不错了,好多人一个都答不上来
我:(。。。掌悦真是没有下限啊,都是些什么人来投)我同学都挺不错的呀,有好些个已经签了大公司腾讯阿里字节,有ACM大佬,有不喜欢在腾讯加班,结果跑去阿里加班的大佬(我们同时笑场)。比不了啊。当然有些同学还在混混度日,反观我之前在京东实习的时候,实习生可能有一半都是西邮的,我真的很佩服人家学校的那些学生,会为了自己的未来主动出击,而不是坐等毕业。
面:嗯,那你就是觉得比上不足比下有余是吧?
我:(笑),哈哈哈,是吧。(把自己伪装的厉害一点)
7. NIO
面:NIO知道吗?解释解释
我:知道。首先NIO的N他一开始是指New IO
面:是吗?
我:(十分肯定自信)是的,后来根据他的特性啊,人们又把它叫非阻塞IO,
面:那你说说怎么个非阻塞法?
我:(结结巴巴,时间长没看忘了)非阻塞嘛,就是在读一个文件的时候,当前进程还可以做些其他事情。
面:和传统的IO有什么区别
我:就是不会阻塞当前线程嘛
面:emmmm
我:NIO的话我只写过简单的利用channel
,selector
,直接内存,映射文件等复制文件用,也没有太深入了解,只知道他是用来取代传统IO的。
8. 闲侃
面:你这字啊,很潦草,万一我要是觉得你也很潦草不给你过怎么办
我:哈哈哈,从小写字就不好看,现在干开发,更是好久没写过字了。
面:好吧,那你觉得你今天答的怎么样,我给你过吗?
我:哈哈哈,还好吧。。。
面:那给你过了,待会儿继续面吧
我:(受宠若惊)哈哈哈哈,谢谢文老师~
9. HR面
接下来在楼下坐了2分钟,HR面就来了,她说她叫大侠。。。然后主要问我哪里人,为什么叫“小港”,独生?去北京可还行?为什么选择软件?为什么不读研?告诉我读研会被BAT主动找。。。我说来不及呀姐姐。然后就是薪资,还有什么要问的吗?我问了下什么部门,什么技术(这个应该问技术面试官的),不过他那时候没让我问,我还以为二面也是技术面,就没问,HR说是掌悦的跟用户管理相关的部门(具体叫啥我给忘了。。。),算是核心部门了,反正关些用户冲钱的行为相关的。。。(好家伙,这完全就是按照我大厂实习的经历量身定制的offer好吗?)技术是Java和Python。说国庆后给offer邮件。
总耗时1h
10. 总结
真的是小厂啊,所有业务都围绕着掌悦app,面试问的也太简单了,我还准备好多内容,都没有用上,白瞎了。接下来继续投,再找找。然后有个offer太能安心了,即使他是口头的,然后我今晚回来本来要答百度笔试的,结果看动画片就给看忘了,想起来的时候已经8点半了。。。。。。。。。。。。