已oc 字节客户端:一二三面 面经
一面 (2020-07-17 70min)
1.什么是内存对齐,为什么需要内存对齐
2.C++中哪些函数不能是虚函数,友元函数可不可以是虚函数
3.析构函数
4.TCP拥塞控制
5.什么是动态规划/什么是回溯
6.100亿个数,最大的1000个,说说复杂度
7.死锁,如何预防死锁
编程题:
-
回文子串个数
-
leetcode216(回溯)
- 公共字符:比如 label , llabe , wolley 输出 l,l,e(这个顺序不重要,只要个数对就行)
二面(2020-07-22 50min)
1.为什么有了malloc/free还需要new/delete
2.什么情况会产生内存泄漏,举例子
3.动态链接/静态链接
4.内存的分区/内存区的顺序
5.进程与线程的区别
6.进程的通信方式
7.线程的通信方式
9.僵尸进程和孤儿进程
10.僵尸进程太多了有什么危害
11.面向对象vs面向过程
12.面向对象特性
13.虚函数/虚函数原理/虚函数指针
14.extern C
15.什么情况会导致内存泄漏
16.线程的状态
编程题:
1.twoSum(说三种方法,实现一种方法)
2.合并链表的变化版
数组num1{1,2,3},数组num2{4,5,6},把两个数组合并到num1上 num1{1,2,3,4,5,6}
(num1显然空间无线大)
第二面基础问的比较多,算法题也没有特别难,面试官也很好,面试体验很不错。。。
三面(2020-07-28 90min)
2.如果可以直接访问物理空间,没有通过逻辑空间会出现什么问题(从这一题开始,后面每一题,我都要裂开了)
3.如果让你设计一个操作系统,设计文本段落的复制粘贴,你会怎么设计(说了共享内存)
4.如果你复制了一段,你又复制了一段,前面那段还在不在,怎么设计(听完题我感觉整个人就不太好了。。蓝瘦香菇)
5.你觉得从A进程复制一段文本,到B进程这个复制过程是谁来控制的,是A还是B,A关了还能不能复制?B关了能不能复制
6.如果设计一个文件的复制粘贴你会怎么设计(说了个mmap也没说明白还把自己绕进去了)
7.如果一个文件你拷贝了,但是你转手把文件删除了(放到回收站)还能不能粘贴了,你会怎么设计
8.如果把文件从磁盘彻彻底底删除了你还能不能粘贴,你怎么设计
9.你现在从聊QQ切换到聊微信,或者切换到浏览器,你觉得操作系统都做了什么?
10.概率问题,A,B两个人抛硬币,谁先抛到正面谁赢,问A赢的概率(一做概率题和智力题我觉得我就是个傻子,不会,面试官提醒我。。。可算懂了怎么算,到最后求和的步骤忘公式了)
11.有n个点,都落在圆周上,问所有点都落在直径一侧的概率是多少(这个比上面的还难,,也是面试官引导做的。。)
12.说说设计模式,我说了个单例,其他不太会
写题:
找出给定数组的最长升序子数组并返回