字节后端 日常实习一二面(已oc)
一面是个可爱的小姐姐,就给人感觉很亲切很放松,简单的问了一些问题就开始做题
一面9.16(45min)
1.进程和线程的区别
2.线程之间内存是共享的吗
3.进程之间、线程之间怎么进行交互
4.项目里线程之间的交互
5.进程间最高效的通信方式
6.共享内存和进程的地址空间的关系
7.代码题:1)K 个一组翻转链表,非递归和递归实现,如1->2->3->4->5->6->7->8->NULL,k=3,变为3->2->1->6->5->4->8->7->NULL
2)给定一个数组,判断可以积水的容量,如{ 5,2,1,4,3 } ,积水容量为5, 42. 接雨水
二面面试官小哥哥人也超级好,不嫌弃我菜愿意和我一起讨论,代码题我思路错了还会举例子告诉我这方法可能行不通,最后经他一步步引导发现其实就是双指针,感觉之前好像还做过这题,但一开始看到代码题的时候思路完全偏了
二面9.21(50min)
1.epoll的水平触发和边沿触发,项目里用的是哪种
2.实现带timeout的read接口,原来的 ssize_t read(int fd, void * buf, size_t count) 改为ssize_t read(int fd, void * buf, size_t count, int timeout),可以调用原来的read函数(其实就是封装一下原来的read函数,一开始没理解面试官意思懵了很久)
3.c++11新特性哪些对你很实用,auto,lambda,std::move
std::string byte = "xxx"
auto s = byte
问auto是拷贝还是引用,会推导成什么类型
4.代码题:溢出问题,一个数组vector<int32_t>,整体和是不溢出的,但部分和会溢出,怎么求和