字节后端实习面经 123面
一面:
- 这个面试官太好了,直接问计网会什么,我说了一堆,最后问了我https加密过程。(会心一笑,就这东西我专门写了博客)
- 然后两道编程题:最大子矩阵,写了个N三方的dp。 这签到题我写了40分钟.......(cry
- [a,b,c] [b, d, f] [g, h] 这种样例,一个框里面的是相同的,简单说就是都是朋友,让你输出最后有几个朋友圈,都是谁?这个样例就是 [a,b,c,d,f] [g,h] (并查集秒过)
二面:
- https://leetcode-cn.com/problems/trapping-rain-water/ 算法题在这,我写的巨麻烦,最后没调出来,给他说了好久思路,他说这个思路也是没问题的。 45分钟过去了。
- cookie是放在http请求的哪里?cookie能干啥。
- http请求方式你知道哪些,(我就知道get与post)get post区别。
- 讲一下inline。
- 讲一下静态库动态库。
- 虚函数与类模板的区别。那个更快。
哭了,c++的那几个全是我看了没背的,都是凭印象说了些,然后最后说“当时就看了一点点”。
三面:
- a+b的算法题:大家都会,我都吓一跳竟然出这。给个大小写的字符串,让你找那个字母最大(不区分大小写)。
- c++的类模板和虚函数了解吗?(上次问过我,会心一笑,静态多态,动态多态,虚函数的实现机制)
- 重载与override(重写)区别。(返回值,参数一个可以不同,一个必须相同)
- stl那些底层如和实现的你知道吗? (vector,deque,map,unorder_map全讲一遍,后两个的优缺点)
- 讲完了哈希表的优点后,问我为啥mysql索引不用哈希表,哈希表那么快?(也就是b+树优点)
- 多线程你用过吗?(写过简单的test,讲了一下怎么测,不加锁发现值变少好多)
- 死锁你知道吧,4个条件。(忘了一个互斥条件,说完我又说了如何避免还有银行家算法)
- 锁你知道啥?(说了悲观与乐观锁,自旋锁,互斥,读写锁。cas原理,cas的aba问题,以及如何解决,两种锁的优缺点)
- 缺页中断了解吗?(讲了页面置换算法,说了那些lru,fifo啥的)。
- LRU咋实现?
- 还问了我项目,问我为什么不用session和cookie标记登录状态?(我说那时候不知道,我舍友用过session,讲了一下如何用session记录登录状态)
没了。一面和三面真是非常轻松,三面问的都是那些最基础的。希望能过!
几个心得:
- 不会的说不会,没事。
- 自我介绍我每次都比上一次说的多一些,加入自己的一些观念,比如我介绍acm的收获时,说了自己对好大学和普通大学差别的看法,好大学就是教的难,学生必须要按照那种难的去学习,时间长了就有着更复杂的思维,我的学校虽然很普通,但是acm不简单,在acm这我要学很多难的算法,难的思维,时间长了,自学能力和思维方式是我最大的收获。
- 刚开始面试会发现自己有一些口头语,“之后”“然后”“嗯”,如果每一句都加一个这,会发现像卡壳一样,注意到这个之后我会有意识的不去说口头禅。
- 如果一个东西当时自己背的有4条,面试的时候就想起来了三个,先说完三个,如果面试官问还有吗?就别加一句“还有个想不起来了”,说太多“有个不记得了”这种话我感觉不太好。能不说就不说。
- 这个感觉最重要,往你会的那个地方拉!往你会的那个地方拉!比如就问了你一个互斥锁,你可以把会的另几个锁也说了,相比于互斥锁,那几个的有点是啥,应用场景。可以用这种话转接:说完某个东西后“前两天我看了一下xxx”,这样就可以说一些与之相关的东西了。