B站软件开发工程师一面二面面经
写在前面
一面 9月9日 11:00 28min
1. 自我介绍
2. 什么是程序
3. 什么是面向对象
4. 封装如何实现(讲解几个关键字)
5. 重载与重写的区别
6. 进程与线程的区别
7. 为什么要用多进程而不是多线程
8. 线程一般开多少比较合适?
9. 线程运行在操作系统的哪一块?
10.前端了解吗?(不了解)
11.算法题:
1. n+1个数,里面包含有1到n的数并且均没有重复,剩下的一个数是重复的,问怎么在尽量小的空间复杂度和时间复杂度的基础上找到这个重复的数。
2. 10个日志文件,每个日志文件的每行数据根据时间戳从小到大排序,问如何在空间复杂度低的情况下将这个10个日志文件合并为一个有序的日志文件。
12.项目中如何解决高负载大并发的问题?瓶颈是什么?
13.有什么爱好?
14.最近有学什么新东西?
二面 9月13日 17:30 31min
B站-北京源力游戏-软件开发二面 9月13日 31min
1. 自我介绍
2. 什么是程序?鼠标是程序吗?鼠标驱动是程序吗?
3. 有一桶装有三种不同颜色的球,每次拿出不放回,请问最多拿几次才能保证手上有两个相同颜色的球。
4. 有个门户网站,有热搜榜(按照用户的点击量进行排序),现在要求热搜榜每半个小时更新一次,请问你要如何设计来实现这个功能?
5. 简单问了一下项目?Redis用在了哪里?Token有什么作用?你主要负责的哪一块?
6. 刚才谈到了数据库?那能说一下数据库的索引的优势和劣势吗?
7. 为什么数据库的索引用的是B+树而不是B树呢?
8. 你对未来三五年的规划是怎么样的?
9. 你期待的团队氛围是怎么样的?
10.你的期望薪资是多少?
11.反问:
具体的业务是什么?
如果有幸能进去,新人的培养路线是什么?
一周内出结果,过了发通知,没过也不发感谢信了。
整体体验感很好,场景题会引导你思考,在你说的过程中面试小哥会点头啊,说“对”之类的来应答,不会让你觉得你是一个人对着电脑屏幕在说话。