腾讯云测试开发一面
第一次面试,有点紧张,面试官看着有点憔悴,不知道是不是工作太累了。
上来先是自我介绍,我就照着简历念了一遍。
面试官先问的青训营项目:
-
数据库用的什么, 用的什么语言
postgresql, go
-
用户业务怎么设计的
认证中间件 表结构:id, name, email..., 加主键
-
点赞怎么设计的
一张表 user_id video_id, 加主键
-
如何筛选出两个用户都点赞了的视频
支支吾吾,想了半天。 先说的 where,但是仔细一想 where 好像做不到 又说是 inner join,面试官让我写出来,但是我不会写,就直说了不会,能不能跳过 面试官说好好好,知道 join 就行
答案:求两个用户同时点赞的视频
-
协程的实现
不会,就提了一句协程是轻量级的线程,跳过了
接着问 miniob:
-
那些是你做的
update, drop table, subquery, mvcc, null 等
-
讲讲 mvcc
这个我也不太懂,miniob 的 mvcc 是残废的。 说了一下是基于时间戳或者版本号的多版本并发控制。讲了讲多线程同时访问会这么样。 面试官问了问锁级别,什么隔离级别。
-
讲讲多线程同时访问会怎么样
miniob 自己实现了,我没去了解过
-
sql 解析是你们做的吗,怎么做的
miniob 自带一些解析,有些是我们自己实现的,用的 flex bison
-
内存管理怎么做的
误解了面试官的意思,我先说的是智能指针,每个 operator 都有自己的数据结构,使用智能指针管理内存。 其实面试官想问的是数据库的内存管理。 答:miniob 自己实现好了,但是我了解过一些,讲了讲 LRU 和 LRU 的实现。
场景:
-
如果让你设计一个 web 服务器,你会怎么设计
不会,提了一下 io 多路复用,没深入了解过。然后又说加个多线程,接着就不会了。
C++:
-
虚函数
讲了讲多态,虚类充当接口,派生类实现接口。
-
虚函数表
不会
-
内存对齐
不知道面试官想问什么,我就说了一下默认是 4 字节对齐。 面试官问如果我申请 6 个字节,会怎么样,我说会补齐到 8 字节。
编程:
-
实现一个栈,要求不能使用内置数据结构
我用链表实现的。
-
给你一个数组,长度为 n,你只可以交换 i 和 (i+1)%n。问是否可以使其递增
腾讯系统有问题,我没看到题目,以为面试官在选题,面试官以为我在思考,我们俩就这样沉默了快十分钟。 我问了一下面试大概什么时候,面试官说没事你先想吧,这才发现。 我的思路是,可以看成是两个数组,奇数位数组和偶数位数组,分别排序,然后检查是否递增。
介绍岗位内容:
主要是做测试工具,服务其他部门,主要是写脚本,写 CI/CD,写测试工具。
我的提问:
-
我二面应该准备什么:
面试官:基础准备以下,最好不要答不上来
-
工作期间可以转岗吗:
面试官:一般工作两年以内是不可以的,如果你想做开发,你可以去投一下开发的岗位
-
实习生工作时间:
面试官:看你,如果你面试过了,随时可以来 其实我想问的是实习生累不累,每天工作几小时
面试官还是很好说话的,就是回答完问题后,面试官那边会有鼠标声,不知道是不是在写面评。
有一些东西记不清了,面试官一直问我 c++内存,经过别人的提醒才知道面试官可能是想问内存序,我都没听过。