2022秋春招/提前批面经分享总结(字节、腾讯、阿里)

2022秋春招/提前批面经汇总GitHub地址:https://github.com/0voice/interview_experience

目前已有187份,持续更新中,欢迎大家star,添加自己的一份面经分享!!

腾讯音乐-后台开发-暑期实习一、二面面经

一面

时间:7:00 pm-8:22 pm

· 自我介绍

· 然后问我两个项目:

o Raft协议的项目,问了比较久

§ 如果外部一个客户端需要提交一个数据,什么时候返回成功?是大多数复制完成之后再返回?

o 因为项目的Go实现的,继续问了Go语言的特性,Go调度器的实现了解过没有?协程如何调度的。

o 毕设的文件系统:

§ PMEM的延时

§ 调度算法

· 网络编程:多线程和多进程的程序写过没有,主要关心实战情况

o socket编程

o select/poll/epoll了解过吗?

· 网络中传输数据如何分包,应该是问TCP粘包问题

o 顺便问了知不知道protobuf

o gRPC实现protobuf的关键点在哪?

§ 跨平台,跨语言

§ 不同机器下定义的基本数据类型长度不同,考虑大端存储还是小端存储

· 进程的通信方式

· 数据库:

o MySQL使用的引擎:InnoDB之类

o 如何建索引?为哪个键建索引?

o Reids的情况,哪里用过

· TCP的三次握手,四次挥手,TIME_WAIT

算法:<= 20min,vscode,共享屏幕,手写,手动构造样例。两道大水题。

· 反转链接

· 二分查找

二面

>面试官迟到40+ min。。。。。。10:40+am-11:40+am

· 问项目,raft协议

o 脑裂的情况如何解决

o 日志复制的具体过程

o CAP理论,日志的理解:日志只是记录操作,并不一定数据的直接修改

· 后面问Go的知识:

o GMP了解过没有?没有,还是继续问。

o GMP如果一个协程阻塞了,如何调度?

o Context有没有了解过。

o Go语言哪些是按引用传递的。

· C++知识:

o map的实现:红黑树

§ 用迭代器访问元素,然后tmp = it, it = it->next,然后把把tmp删了,后面迭代器还可以继续执行吗?

o malloc的实现

· 进程和线程的区别

· 程序的内存布局

· Go的协程和线程的优势

· I/O密集型和计算密集型哪一个适合Go的协程。


腾讯PCG腾讯视频暑期实习一二三面+HR面

一面80min

自我介绍

1.虚函数的作用

2.模板的作用,解决了什么问题

3.TCP特点

4. 拥塞控制

代码:

1. Leetcode.54螺旋矩阵

2.一个数组如nums = [ 3,2,5,6,2,3,4],输出一个数组ans = [2,1,3,7,1,2,3],ansi代表numsi左边和右边比自己大的第一个数之间数的个数(有点绕。。) 

反问 

二面50min 

自我介绍

1.两个栈实现队列2.两个队列实现栈 (push O(1)和pop O(1))3.一个队列实现栈 4.B+树优点5.B树区别,B树范围查找复杂度6.哈夫曼树,哈夫曼树构造过程7.三次握手过程,第三次丢包,一定会RST异常么8.TCP怎么保证可靠传输9.拥塞控制 

10.虚拟内存,虚拟内存解决了什么问题,如果内存足够大,还需要虚拟内存么 

11.HTTPS加密原理,为什么不一直用非对称加密,为什么能确保对称加密所用的密钥是安全的 

12.线程进程区别13.100本书,每次取1-5本,自己先取,怎么取到最后一本 

反问 

三面70min 

自我介绍

从项目切入,聊一些相关知识

1.项目为什么用TCP

2.拥塞控制(每次都问。。)

3.UDP怎么保证可靠

4.是否了解业界存在的基于UDP的可靠传输协议(谷歌QUIC)

5.QUIC具体怎么实现(不了解。。)

6.HTTP基于什么协议

7.网页发送文件给其他人,HTTP怎么知道文件发送完了

8.HTTP有哪些方法

9.输入url显示网页全过程

10.项目为什么不用HTTP

11.线程同步的手段, 事件如何使用 

12.信号量本质,和互斥量区别

13.C++11或者C++14新特性

14.lamda 表达式

15.智能指针原理

16.子函数形参里有 shared_ptr,主函数里定义一个shared_ptr,这个shared_ptr作为参数传入子函数中时,智能指针的计数count变化过程

17.shared_ptr存在的问题,怎么解决

代码

左右最值最大差

反问

 HR面 13min 

没有自我介绍 

1.技术面面了几轮 

2.申请岗位的方向 

3.在申请岗位的方面有什么积累知识 

4.讲一下项目 

5.项目中遇到最大困难,如何解决的 

6.项目中最复杂的地方 

7.现在时间点这么晚,为什么还在找实习 

8.有其他offer么 

9.如何来实习的话,觉得自己有哪些方面需要补充 

10.入职之前有时间补充相关知识么 

11.父母做什么的,独生么 

12.兴趣爱好 

13.压力来源 

14.自己优势,劣势 

反问 


字节跳动后端一二三面

一面(40min)

1.简单自我介绍+项目(10min)

2.进程线程的区别

3.进程的调度算法

4.如何设计一个哈表表

5.数据库索引为什么不用红黑树

6. B+树的特性

7.联合索引

8.如果两个索引都用到了范围查询但必须使用索引如何解决

算法

重排链表

二面(1h)

1.自我介绍+项目(20min)

2. a是主键索引,b是普通索引,问对b查询索引怎么走

3. fork()函数

4.计算机启动的时候内存做了什么

5.虚拟内存

6.输入一个URL

7.数据是如何拷贝到网卡的

8.场景题:有一个1T的记录了用户id以及ip的日志,内存只有1G,要求根据Ip出现的频率对用户进行排序(分区+堆)

9.常见的排序算法以及空间复杂度

10.插入排序最优的空间复杂度是多少

11.哪些是稳定的排序

算法

LRU

三面(50min)

1.自我介绍

2. C++智能指针

3. C++局部变量与全局变量

4.面向对象的三个特性

5.给一张数据表,你应该考虑从哪些方面建立索引

算法

阿拉伯数字转中文大写

你可能感兴趣的:(校招,面试,腾讯,字节,阿里)