字节基础架构日常实习一面面经
字节基架一面 (三面结束已offer)
字节基础架构日常实习生面经
base上海
第一次面试,mark一下
自我介绍。
聊项目:从LSM说起吧。
简要介绍了一下LSM。
我主要说了内存里的结构,硬盘上的结构,CRUD各个接口怎么实现的。
跳表原理。
和B树的区别。
这里理解错了面试官的意思,面试官其实想问的是内存里能不能用B树,于是我说完这个之后,他又说了一遍这个问题,而后我说内存里不用考虑磁盘IO用红黑树就行了。
写入会发生几次I/O?
布隆过滤器原理。
range query怎么实现?
说一下编译器这个项目吧。
但面试官不太懂这个,所以主要是我介绍。说了下从前端到后端再到垃圾回收。
你提到了垃圾回收,我们知道C++里面是没有垃圾回收的,那么你能讲讲C++里面是怎么管理内存的吗?
我说我听过智能指针,但没有很多的实践过它。
然后说了说我知道的unique_ptr和shared_ptr。
然后他问那么循环引用问题怎么解决呢?
reference count里面讲过,但我忘了,然后他就介绍了一下weak_ptr。
函数嵌套是怎么做的?
看到你也做过前后端开发,那么问问你这方面问题吧?
从此进入八股。。。我就开始懵逼。。。
讲一讲关系型数据库的几个特性吧。。。
这个我说我没有系统学过数据库,要不你给点提示,然后他说算了。。。
讲一讲浏览器敲入www.github.com
会发生什么吧。。。
讲了讲dns,然后到网络协议栈我就开始支支吾吾。。。
讲一讲TCP/IP网络结构吧。。。
讲一讲OSI七层网络结构吧。。。
看你用过linux,讲讲linux里进程和线程的区别吧。(可能是唯一一个知道的。。。)
诶,真就不该写哪些开发的东西。。。
开始做题
翻转dns:www.bytedance.com
=> com.bytedance.www
剑指offer原题,但我没刷到。。。
剑指 Offer 58 - I. 翻转单词顺序
当我敲出string original_dns, reversed_dns;
,他就说原地翻转哦。
然后我思考了一会儿,并不知道怎么搞。那他说你先实现个不原地翻转的也行吧。
然后搞了个stack解决了。
然后说我给你点提示吧,你想想整个字符串是怎么翻转的,然后我说头尾双指针向中间走,但我的思路一直卡在头尾遍历,然后碰到一个.
就交换,所以到最后也没做出来(感觉是凉的首要原因)
正确做法:全部翻转,再顺序遍历一遍,碰到.
就把前面的那一小串翻转。
这没做过谁想得到啊。。。
反问阶段:
你们做什么?
写块存储。你可以理解为虚拟硬盘。
技术栈?
C++,然后后台那些其他的东西用Go。
我面试表现怎么样?
题目做的有点少。。。
那些八股知识也要了解,对业务还是有帮助的。。。
以为凉了,没想到今天邮件约二面,二面不能再这么拉了。
#字节跳动##基础架构工程师##实习#