BIGO C++后台视频一面面经

面试总时间1小时,29号被鸽了一次,所以安排到今天了。感觉就这样凉凉了,我问结果,面试官说,那我肯定不会告诉你结果的!
另外,刚开始面试的时候,感觉面试官很疲惫,也没啥激情,估计是面了很多人吧,不过人倒是很nice,给了很多指引。
我估计,BIGO可能就是不会招那么多人啦,所以,面试难度感觉不是很大,但不失为一种学习的经历,分享出来,大家一起进步。
反正我这个菜鸡,到现在还没拿到任何一个offer,是要我转行吗???哭

面试的问题,和网上其他人的大抵是差不多的,尽管我有看别人的面经,遇到了一模一样的问题,但还是没答上来。比如说下面那个64位无符号整型逆转算法!好气啊~

没答上来的问题:

1. 什么是A* 算法,完全不知道。
2. 64 位无符号整型旋转,如何实现。僵持了半天,面试官告诉我如何做,我还是不会!!!然后做另一道算法题目了。
3. 读写锁。

答得一般的问题:

1. 加密算法了解吗?RSA是啥?实现加密算法最重要的因素是啥?    RSA就正常说吧,重要的因素我说了大质数。然后面试官继续给我做了补充,差不多就是这样。因为面试官是做网络安全的,所以问了这个问题。我正好也是研究网络安全和区块链的,所以碰巧了解。
2. 就是上面说的另一个算法题目:找出字符串中出现次数最多的那个字符,有数字,大小写,还是手写。我说了三种方案,面试官叫我用第二种写,我就弱弱的写了哈希表。然后问我需要遍历多少次可以找到,我说n次,即字符串的长度,面试官说还要再加上62,我说,对,0-9a-zA-Z共62个。
说实话,我的算法差的要命!!!

常规问题(感觉就是走个形式,所以下面的问题没啥难度):

1. TCP 相关的,滑动窗口是什么,主要是用来实现什么的?我说了拥塞控制,流量控制。
2. 进程和线程的区别,有没有用过协程,说下协程和线程的区别。解释了线程为啥比进程更高效等等。
3. 栈和堆的区别。从内存的分布上和存储的类型上进行了说明。
4. C++中的访问控制,protected。
5. 问项目中,很low的一个容器demo,里面的进程和资源隔离是如何实现的。linux内核的命名空间和cgroup和UFS。
6. 进程间的通信方式有哪些?多线程间的通信有哪些?7种。
7. 锁了解吗?都知道哪些锁,分别说一下,我说了读写锁,自旋锁,互斥锁,但读写锁没解释上来。
8. C++中都有哪些特性,一口气说了差不多全部特性。
9. Linux 命令熟悉吗?简单的我就不说了,我说了find xargs sed awk grep等。
10. 看你项目里有写过Linux Shell, 那你来说说 cat 命令的实现原理吧!
11. 快速排序的基本思想,并说了改进的几种快速排序,随机快排等。
其他的没印象了,视频也没录下来,哎~暂且这么多吧!

反问环节:
1. 为啥项目问的少,面试官说,你都写了简单的xx,我怕我问了你也不会啊!
2. 公司里的C++有几个方向,都有啥区别啊?
3. 面试的表现及结果。

总之,面试的套路都差不多,大家多刷刷面经和算法吧。我的算法是弱势,其他的基础知识积累就好了,反正菜到现在也没offer,豁出去了,大不了转行呗!

祝贺大家早日拿到想要的offer!
#BIGO##面经##校招##C++工程师#
全部评论
问你加密算法是你简历写了吗
点赞 回复 分享
发布于 2019-09-04 10:28
有没有 在线 编程?
点赞 回复 分享
发布于 2019-09-02 23:28
面试会提前一天打邮件吗?
点赞 回复 分享
发布于 2019-09-02 18:48

相关推荐

从输入URL到页面加载发生了什么:总体来说分为以下几个过程: 1.DNS解析 2.TCP连接 3.发送HTTP请求 4.服务器处理请求并返回HTTP报文 5.浏览器解析渲染页面 6.连接结束。简述了一下各个过程的输入输出作用:以下是对从输入 URL 到页面加载各过程的输入、输出或作用的一句话描述:DNS 解析: 输入:用户在浏览器地址栏输入的域名(如 www.example.com)。输出:对应的 IP 地址(如 192.168.1.1)。作用:将易于记忆的域名转换为计算机能够识别和用于网络通信的 IP 地址,以便浏览器与目标服务器建立连接。TCP 连接: 输入:浏览器获得的服务器...
明天不下雨了:参考一下我的说法: 关键要讲出输入网址后涉及的每一个网络协议的工作原理和作用: 涉及到的网络协议: HTTP/HTTPS协议->DNS协议->TCP协议->IP协议->ARP协议 面试参考回答: 第一次访问(本地没有缓存时): 一般我们在浏览器地址栏输入的是一个域名。 浏览器会先解析 URL、解析出域名、资源路径、端口等信息、然后构造 HTTP 请求报文。浏览器新开一个网络线程发起HTTP请求(应用层) 接着进行域名解析、将域名解析为 IP 地址 浏览器会先检查本地缓存(包括浏览器 DNS 缓存、操作系统缓存等)是否已解析过该域名 如果没有、则向本地 DNS 服务器请求解析; 本地服务器查不到会向更上层的 DNS 服务器(根域名服务器->顶级域名服务器->权威域名服务器询问)递归查询 最终返回该域名对应的 IP 地址。(应用层DNS协议)DNS 协议的作用: 将域名转换为 IP 地址。 由于 HTTP 是基于 TCP 传输的、所以在发送 HTTP 请求前、需要进行三次握手、在客户端发送第一次握手的时候、( 浏览器向服务器发送一个SYN(同步)报文、其中包含客户端的初始序列号。TCP头部设置SYN标志位、并指定客户端端口 同时填上目标端口和源端口的信息。源端口是浏览器随机生成的、目标端口要看是 HTTP 还是 HTTPS、如果是 HTTP 默认目标端口是 80、如果是 HTTPS 默认是 443。(传输层) 然后到网络层:涉及到(IP协议) 会将TCP报文封装成IP数据包、添加IP头部,包含源IP地址(浏览器)和目标IP地址(服务器)。IP 协议的作用: 提供无连接的、不可靠的数据包传输服务。 然后到数据链路层、会通过 ARP 协议、获取目标的路由器的 MAC 地址、然后会加上 MAC 头、填上目标 MAC 地址和源 MAC 地址。 然后到物理层之后、直接把数据包、转发给路由器、路由器再通过下一跳、最终找到目标服务器、然后目标服务器收到客户的 SYN 报文后,会响应第二次握手。 当双方都完成三次握手后、如果是 HTTP 协议、客户端就会将 HTTP 请求就会发送给目标服务器。如果是 HTTPS 协议、客户端还要和服务端进行 TLS 四次握手之后、客户端才会将 HTTP 报文发送给目标服务器。 目标服务器收到 HTTP 请求消息后、就返回 HTTP 响应消息、浏览器会对响应消息进行解析渲染、呈现给用户
点赞 评论 收藏
分享
点赞 评论 收藏
分享
03-16 22:00
武汉大学 C++
幸福的小熊猫想要offer:我阿里投的 c++岗,面试官说自己是做 java 的,c++这辈子才有了
点赞 评论 收藏
分享
评论
2
56
分享

创作者周榜

更多
牛客网
牛客企业服务