BIGO C++传输工程面经

在 BIGO HR 公众号投了简历,过几天 HR 打电话问了我一些基本情况,然后让我去到他们那里面试,下午 2 点 15 分左右开始面试,差不多晚上 7 点才结束,一共四轮技术面(网上不是说三轮技术面而已吗。。。)面试体验还是挺不错的,HR 还加我微信,来之前让我注意安全,感到震惊,这么多个面试者这么一个一个对接,很辛苦呀。下面的题目只能靠我的记忆复现,不一定完整,顺序也是乱的。

一面

1.什么是多态以及多态的实现机制

2.宏函数和inline函数的异同点

3.求链表的倒数第k个节点(手写程序)

4.两个有序等长的序列,求出其中位数(中位数是[L/2]的位置)

5.判断一个程序的输出结果,count最终值为多少

int count = 0;

int x = 981;

while(x)

{

    count++;

    x = x & (x-1);

}

6.快速排序和堆排序的基本思想

7.map的底层数据结构,map和红黑树和HashMap的红黑树有什么区别

8.什么是大端和小端

9.C语言static变量存放在堆区还是栈区(阴我。。。静态存储区吧)

10.进程和线程有什么区别,进程间通信有哪几种方式

11.是否了解多路IO复用,讲讲select和epoll的区别

12.指针和引用的区别

(一面总体上基本都答出来了,面完面试官让我继续在这里等一下,就是有戏,虽然一面面试官看上去比较严肃,但是最后走的时候脸上还是挺开心的,还跟我说了一下第5题其实就是求x的二进制包含了多少个1)

二面

1.先问我实习做的东西

2.有父类,组合类对象时类的构造函数调用顺序

3.判断一个机器是大端还是小端,实现一个将大端字节序的32位数转换为本机字节序函数(类似于ntohl功能)

4.vector和list的区别

5.是否使用过dll,如果在生成dll的导出函数使用了std::list会有什么问题

6.如果一个自定义对象要存放在容器中,比如vector,list这种,那么这个自定义对象需要具备什么样的条件(答了需要自定义正确的拷贝构造,不能是引用,他问我还有吗。。。不知道了)

7.单例设计模式有哪几种写法,双锁机制的单例设计模式存在什么问题

8.有没有用过线程函数,Windows下创建线程有哪些函数,为什么使用_beginthreadex而不用CreateThread

9.是否了解二叉树的遍历,先序遍历,中序遍历,后序遍历,还有层序遍历,说出先序遍历和层序遍历的思路

10.知不知道什么是右值,说说C++11中std::move函数的功能

11.判断一个long型的数是否是 2^n(n从0-31),要求时间复杂度为O(1)

12.知道什么是哈希吗,解决哈希冲突有哪些方式

(二面面完慌得一批,没有一面那么稳,有些问题也答不出来,但是他让我再等一下,待会三面)

三面

1.浅谈一下C和C++的区别

2.C语言中如果是一个static的局部变量是什么功能,如果一个全局变量修饰了static是什么功能,C++类里的static成员变量是什么功能,static成员函数是什么功能

3.进程和线程的区别,多线程除了普通的mutex还了解过哪些锁

4.信号量和互斥锁的区别,设计一个类实现信号量的功能,可以使用锁或者条件变量

5.谈谈设计模式六大原则,除了单例设计模式和工厂设计模式,谈谈你对其他设计模式的理解

6.怎么找出链表的倒数第k个节点,怎么找出链表的中间节点,如何判断链表有没有环

7.问我项目的东西,怎么把我的多媒体播放器做成可以边下边播的播放器

8.问我对ffmpeg的基本理解还有解码时音视频不同步的问题

9.什么是多态,多态的实现机制

10.TCP建立连接为什么是三次握手,五次行不行,两次行不行,TCP断开连接是几次挥手

11.TCP如何保证可靠传输

(三面面完感觉还行,跟面试官聊得挺畅快的,觉得这次稳了,他让我再等等,我以为接下来是HR面了,没想到来了个四面技术面。。。网上只看到过三面啊)

四面

1.聊聊人生,问我想做什么

2.写一个memcpy的函数,需要注意地址重叠的问题

3.判断两棵二叉树是否相似,相似就是指可以通过左右旋转得到

(四面面试官最后说:你的编程水平有待提高啊)

猜你喜欢

转载自blog.csdn.net/weixin_38102771/article/details/88376558
今日推荐