记录一下第一次面试字节跳动后台开发(实习),因为我的项目是C++的网络编程项目,所以问的都是C++和网络编程相关,二面和三面(HR)以及最后加面一轮的技术面都记不清楚了,算法题都写出来了,虽然都没写出最优解,但题目答的都还行,基本上都是底层相关的,所以还是得多看书和博客,多记笔记,多敲代码,多积累
一面:
1、C++从源代码到可执行文件的过程?
2、C++的内存布局,代码段可写吗?
3、多态是什么?实现原理?
4、C++的继承,如何定义一个只在栈上分配的类?
5、STL的空间配置器以及异常处理?
我看过一本《STL 源码剖析》,这本书讲的很详细,我做了笔记,所以答的还可以
6、Reactor模式和Proactor模式?
7、select与epoll的区别?epoll的LT和ET模式?
这一题我答到了底层实现,虽然没看过全部源码,但看过相关博客
8、了解数据库吗?讲一下Redis的集群?
其实本来想问的是nginx,被我跳到了数据库,我答的是了解关系型数据库MySQL,非关系型数据库Redis,因为我有选修一门数据库的课程,老师举的例子就是M有SQL,然后面试官问我了解MySQL的什么内容,我答的是数据库的基础知识,譬如说事务、范式、隔离级别、索引这些东西,他看出来我不懂MySQL,然后问了我Redis的集群,集群我不懂,我答的是Redis的数据结构,优缺点,数据结构的底层实现、事件和模型等等
9、如何处理POST请求?
我的项目是一个Web服务器,实现了GET请求,然后他问我如何实现POST请求,服务端要怎么处理等等,需要自己理解了才好回答,会涉及到数据库的处理
10、一道算法题:leetcode 55
我第一次面试大厂,太紧张了,没写出最优解,写出了个暴力解,过了一个半小时就通知我二面时间了