腾讯云智-后台开发(一面+二面)
一面
一面时间是
3.26
1.自我介绍
2.项目介绍
3.项目提问
- 日志系统:双缓冲区读写问题
- 云备份:断点续传、热点文件管理、压缩效率
4.说一下堆区和栈区,为什么要划分出这两个区
5.函数是如何调用的?
6.介绍一下指针和引用,它们在作为参数类型时,如何传递参数?
7.说一下常用的索引
8.MySQL引擎有哪些,说一下 InnoDB 和 MyISAM 的区别
9.说一下事务
10.说一下 MVCC 机制
11.隔离级别有哪些?MVCC 机制用于哪些隔离级别?
12.说一下 MVCC 的实现原理
13.MVCC 解决了哪些问题?
14.MVCC 机制如何解决幻读?介绍一下MySQL中的锁机制,说一下间隙锁的使用及原理
15.索引如何优化?
16.说一下 select、poll、epoll
17.poll 和 epoll 的使用场景
18.输入 URL 后发生的事情
19.HTTP 基于什么协议实现?
20.如何使用 HTTP 协议与服务器连接(TCP三次握手)
21.HTTP 和 HTTPS 的区别?
22.HTTPS 如何确保安全性?
23.为什么不能只使用非对称加密?
24.说一下 CA 证书
25.CA证书是由谁传输的?
26.如何使用 CA 证书(CA 证书是如何保证安全的)?
27.如果访问两个不同的网站,如何获取 CA 的公钥?
28.手撕算法:**************
- 问算法时间复杂度
反问
1.主要从事什么业务?
- 腾讯会议、腾讯文档等登录处理
2.面试结果
- 系统通知
3.主要使用什么语言
- 主要使用 GO,也会使用C++
补充问题
29.什么时候能实习?
二面
距离一面(
3.26
)一个半月后,才收到了二面通知,5.15
进行的二面
基本了解
1.自我介绍
2.打算考研吗
3.年级排名
项目拷打
4.为什么会实现这两个项目
- 项目分别是 云备份系统 和 日志系统
5.介绍项目(云备份系统)
6.客户端是如何知道文件是否已经被上传过?
7.文件标识是存储在哪?
8.客户端对备份文件夹的扫描频率是多少?如果是不间断扫描的话不会出问题吗?
9.服务器是如何实现备份的?
10.备份文件是存储在哪的?
11.详细说一下断点续传
- 这个功能是直接使用
httplib
库,自己并没有实现
12.如何判断文件是否需要重新传输?
13.服务器是怎么知道待传输区间?如何传输?
- 浏览器给的,可以在请求报头中获取
14.如果让你自己实现的话,你会怎么获取传输区间的?
15.浏览器怎么知道待传输文件的大小呢?
16.服务器如何确保待传输区间是正确的?
17.文件传输效率问题
- 取决于云服务器的
18.服务器是如何判断传输结束的?
19.如果浏览器给了一个错误的传输区间,服务器该如何判断并解决?
- 通过文件大小判断
- 通过确认序号机制(面试官提示参考
TCP
协议)
20.服务器如何判断请求的文件是正确的?
- 通过文件校验和(也是参考
TCP
协议)
21.文件校验和有哪些生成方式?
- 哈希
- 文件名+大小+修改时间
22.在文件传输的哪部分(前期、中期、后期)进行校验比较合适?
23.介绍项目(日志系统)
24.如何使用?日志输出的流程?
25.多线程写入的时候(异步线程)是如何确保线程安全的?
26.说一下生产者消费者模型
27.锁具体是加在哪一个数据结构上的?
- 缓冲区(数组)
28.具体的加锁细节?
- 生产/消费时加锁,结束后与对方互换缓冲区时加锁
29.如何进行压力测试?
30.如果消费能力赶不上生产速度,会发生什么?
- 生产者阻塞
31.如何避免这个问题?
- 扩大缓冲区(面试官说缓冲区不能无限增大)
- 加入更多的线程促进消费
32.日志写入的时间消耗主要在哪?
- 文件IO
- 消费者等待生产者
33.如何优化这个时间?
- 引入多路转接
- 文件顺序写(答错了,面试官说文件都是顺序写的)
34.数据是如何从程序流转到文件中的?(考察文件IO过程)
35.写缓冲区可以调大吗?
36.从文件IO考虑,如何优化日志写入时间?
- 从文件打开上优化,可以提前打开文件
- 从写入数据上优化,一次尽可能多的写入数据
基础知识
37.介绍一下智能指针
38.具体有哪些智能指针?并具体介绍一下
39.说一下 UDP
和 TCP
40.TCP
的可靠性是如何保证的?
41.具体说一下超时重传机制
42.超时时间具体是多久?
43.最多重传多少次?
44.抓包了解吗?用的什么软件抓包?
45.有没有观察过数据包中的详细信息?
- 没有,只使用过抓包来分析请求
其他问题
46.能实习多久?
- 3~6个月
47.你现在还在上学,如何腾出这个实习时间?
- 可以利用暑假时间,并且现在课很少
48.具体的实习区间?
- 6月~9月
49.学校位置
- 湖北荆州,离武汉大概一个半小时车程
手撕代码
50.螺旋矩阵
51.分析题目,讲思路,写代码
面试官只提供了一个测试用例,自己跑过后,将代码发给了面试官,面试官要求结合代码讲解思路
- 面试结束自己跑了一下代码,发现第二个测试用例都没跑过,但面试时面试官并没有提出问题
反问环节
52.部门负责什么业务?平时的工作量大吗?
- 负责腾讯会议,工作量看部门,面试官觉得不大
53.如果入职实习的话,会负责哪些工作?
- 具体看入职的部门,会有具体的导师带
54.如何评价面试?以及给我的建议
- 面试有要求,不能评价,建议学习一些符合实际业务的知识,以及一些更前沿的专业技术
55.面试结果大概什么时候会出?
- 两周内吧