字节跳动后端实习面试(全程超越附体)
笔者情况
1、笔者是本科末流985,今年保研到top2某码农专业的学生,因为下学期没啥事,同时也想转技术方向 c++(原来做的是前端开发),所以打算实习。在这之前在网易有实习半年(前端) 2、因为保研夏令营的事情把leetcode刷了400多道题,也看了操作系统,计网啥的然后9月份之后刷了两遍primer c++、effective c++,stl 源码解析等。
面试情况
我是实习僧上投了三个岗位,然后第二天就打电话约面试了,约在了后一天
一面
0、简单的介绍下自己吧。 1、你原来做web前端开发,了解web后端开发的语言吗?说一说 2、那为什么不用c++做web后端开发呢? 3、那我问一些c++的问题吧,能说说vector、list、queue的实现方式吗 4、vector扩容是怎样的? 5、为何要2倍扩充vector? 6、如果我们顺序访问vector和list,谁快? 7、字节对齐了解吗?为何要字节对齐。如果不对齐,会有什么结果? 8、实现一下memcpy这个函数吧,给你函数声明 void *memcpy(void *dst, const void *src, size_t len);(5分钟内完成) 9、你能解释一下,为何要分情况吗?(低址重叠) 10、你这个是按照字节拷贝的,还有更快的方法吗? 10.1、你了解move、forward吗?说说移动和完美转发的实现。 11、数据库了解吗?能简单说说mysql的索引吗? 12、既然提到b+树,那也简单说说b-树吧。 13、AVL树、红黑树了解吗?简单说说(反转、颜色)。 14、那既然红黑树性能好,为啥索引不用红黑树呢? 15、你了解哪些使用红黑树实现的容器? 16、行,我们再写一道题,股票买卖,限制只能买卖一次。 17、如果让你可以无数次买卖呢?怎么做? 18、你有什么要问我的?
二面
0、简单的介绍一下自己 1、为什么想要转c++呢?为何选择c++这门语言? 2、写题:leetcode 862.(deque实现) 3、说说你的代码思路,运行一下(?!!!,不是说一般不运行的吗) 4、能用双指针实现吗,你实现的复杂度怎么样? 5、我问写c++吧,虚函数了解吗?(继承、多态、虚函数表,bulabula) 6、那虚函数表是在哪个阶段(预处理、编译、汇编、链接)形成的啊? 7、虚函数表存储在哪个地方?(堆?栈?静态区域) 8、纯虚函数了解吗? 8.1、虚函数可以inline吗?可以的话怎么inline。 8.2、inline函数一定会inline吗? 9、c++的内存管理说下?(堆、栈、静态) 10、为何会出现栈溢出的现象?堆为何不会? 11、如果我们声明一个函数,想要里面的变量长期存在,怎么做? 12、什么时候我们用堆、什么时候用栈? 13、简单的说下c++的作用域。 14、const知道吗? 15、说说static。 16、我们来写代码吧,实现一下单例模式。(懒汉模式) 17、简单的说说tcp、udp吧? 18、描述一下流量控制、滑动窗口。 19、GBN和SR在tcp中运用吗?如何运用? 20、说说tcp的状态有哪些。
三面
0、自我介绍一下吧。 1、写一下memcpy?优化? 2、说说ipv4和ipv6 3、分析一下我们在视频面试的时候牛客网需要用到的协议? (ajax轮询、http、https、dns、tcp、udp、ip、arp、) 这个问题问的很多,各种分析。 4、在main函数执行前,可能有函数可以执行吗?写一下 5、说一下啊gcc的编译选项。 6、你有什么问题问我吗?
hr面
1、你能实习多久。 2、为何选择保研top2某所学校? 3、为何选择这个岗位? 4、你的理解?为何转技术栈? 5、有什么问我吗?
菜鸡能拿到offer真是幸运啊!!!!!
#字节跳动##实习##C++工程师##面经#