快手实习一、二、HR面(已获offer)
应聘岗位:快手暑期实习,c/c++基础架构实习生
方式:笔试后面试
一面、视频、60min
问的比较广,比较底层
上来自我介绍,聊项目大约25分钟左右,后面开始进入正式的面试套路
1. 讲一下cpp中的const关键字,static关键字
2. 四种类型转化,与c什么区别,static_cast和dynamic_cast有什么区别(在这里扣了挺久的,回答的不太好)
3. 四种智能指针,auto跟unique什么区别,unique怎么实现的(一般不都是问shared嘛,,硬着头皮答得)
4. 多态得实现,虚函数
5. cpp内存分布,bss段什么作用,为什么要有bss段,什么时候完成初始化?(1. 自动初始化为0;2. 减小程序文件大小,程序加载时进行初始化,在exe程序文件中没有为其创建内存空间,仅存储变量符号和类型)
6. c相关,使用printf时,只有%d没有后面得参数会怎么样,,,,(卒)
7. c相关,数组与指针的区别,以及一系列关于对数组的判断题,比如arr+1和&arr+1以及&arr[0]+1的区别(卒,回答混了。。。)
8. 网络方面,tcp握手挥手相关问题,以及如果服务器端突然掉电了会怎么样,网线掉了怎么样,服务端进程崩溃了怎么样
9. 数据库方面,问了两种引擎,b+树
10. 操作系统方面,进程与线程,top指令(卒)
11. 编译原理相关,学没学过?没(卒)、所以就只自己主动说了一下cpp四个编译步骤(预处理、编译、汇编、链接,还漏说了汇编,尴尬)
二面、视频、60min
依旧扣的很底层,二面面试完之后忘了记录,所以可能不全。。。只凭记忆写一下印象深刻的了
0. 开篇依旧是自我介绍,聊项目
1. 依旧是各种基础的c/cpp问题
2. 函数里面返回局部变量的地址会有什么问题,什么时候没有问题,为什么会有问题,请举出具体的例子,它的底层过程是怎样的(卒。。。)
3. 情景题,100万的数取top k,堆的底层实现,堆排序复杂度。(建立堆O(n),堆调整O(nlogn))
4. 基础数据类型,补码,float占字节大小,表示的范围比int大嘛?内存中如何存储(float卒)
5. 编程题,实现stoi函数
HR面、电话、20min
聊项目,聊对快手的看法,聊对于前面面试的感觉,聊学习方法,聊职业规划
============================================
尽管一二面试好多问题没答上来,但最后还是收到了offer~