字节测开一面

面试前刷了一天的面经,一直背背背,计划自己每次面试完都复盘,总结,反思,记录下来,给自己攒好运,希望最后大家都可以拿到满意的offer~

1.自我介绍
2.看我的简历上之前做的都是算法研发,问我觉得测试开发需要具备哪些技能?
3.了解进程、线程吗
4.知道协程吗?讲一下
5.讲一下他们三个之间的关系
6.讲一下进程同步机制,我回答了生产者-消费者,缓存池,消息队列,管道,信号量啥的,但是面试官说这些是线程同步,我也不太懂,就有啥说啥了。。。
7.问我了解读写锁吗?可以讲一下怎么实现的。  这个我不会,就一开始说成了互斥锁的原理,后来他提醒我,我又改了一下。读进程应该是可以多个进程一起读的,但是写进程一次只能有一个在写。
8.python中可以实现协程,有用过吗?没用过
9.python中有多线程、多进程,用过吗?也没用过(我太菜了
10.计算机网络相关的:说一下每个层之间的一些常见协议,我从TCP/IP的每个层之间说了一些
11.说一下TCP的连接和断开是怎么做的
12.知道TCP头部和UDP头部吗? 我真不知道这个
13.知道为什么TCP的断开(四次挥手)比连接(三次握手)多一次吗?这个我也不知道为啥,如实回答了
14.讲一下python当中常用的数据类型,我说了几个常见的
15.解释一下list和dict的底层原理,这里list应该是数组,但我之前看到一个博客写的是动态数组,面试官纠正了一下
16.说一下常见的数据结构,我基本都说出来了,但居然忘记说栈和队列,我晕!!
17.开始手撕代码:题目之前做笔试的时候做过,但是当时我就不会。。。
题目:用数组中的数构建比n小的最大数  不过可以说思路,给了20分钟也没写出来,我太菜。。。
18.写完题之后,出了个场景题,如何测试抖音的发布功能?
19.最后反问,一共一个小时,整个过程也很流畅,就是手撕代码的时候卡在那里真的巨尴尬
全部评论
哪个部门呀
点赞 回复 分享
发布于 2024-04-22 11:15 北京
请问楼主是哪个部门呀
点赞 回复 分享
发布于 2023-12-21 07:07 美国

相关推荐

问题1:为什么会使用分库分表,到达了什么样的数据级别才会去加设计,是否对数据量有一个统计我的理解:看星哥之前写过 单表行数超 500 万行或者单表容量超过 2GB,推荐分库分表,但是面试的过程中怕被问自己写的项目会有这么大的数据量吗不要这么硬背,具体情况具体分析,有的表字段少,经常是条件等值查询,这样加个索引,一个亿也不用分表,有的字段多,还是范围查询,可能5000万就得分表,面试官问你你说是自己在学习分库分表应用到项目中,自己造了几千万的数据量问题2:基因法需要分表的一个数量和确定的一个东西(我的理解是分表的依据,例如大麦中是订单编号和用户id),但是正常的生产环境中是可能动态改变的,比如说需要动态扩容的话,怎么解决呢(例如当前有4个分表,但是现在需要扩充到8个分表),是使用双写吗?这个在扩容前就要考虑好能维持多少年内不需要再扩容。转转架构师在分库分表前,通过之前记录的数据增长量,做了256张表,能在7年内不需要再扩容,如果需要扩容的话,可以使用双写,新扩容表写的过程中,用新的分库分表算法问题3:如果在防止超卖的过程中,Redis不可用了,怎么解决我的理解:使用Redis集群和主从复制吗?因为Redis宕机的话数据库的数据也不能保证是最新的版本,所以得尽量保证Redis不宕机?肯定要使用redis集群模式,但可能会有主从延迟,导致从节点数据不是最新的,但关系不大。可以在用户生成订单后,修改数据库的座位和库存,然后用户支付后,再改数据库的座位和库存,每一步都做好验证。这样从节点的数据问题会降到最低。问题4:如果在当前的幂等验证逻辑中,有一个消息所对应的幂等标识符是不存在的,按照现有的逻辑是可以执行的,但是幂等验证之后的业务系统异常了,这个时候应该怎么处理呢(即通过了幂等的验证,但是后面的服务down掉了,比如说下游抛了一个异常出来)【没太明白应该回答什么,是指需要将幂等标识符重新进行设置吗】异常了就异常了呗,把这个请求的标识从redis中删除了,就像分布式锁时,业务异常也要执行解锁一样,让下一个请求进来正常执行,然后设置好标识位问题5:本地缓存为什么使用Caffine呢,为啥不用Guava因为caffine的性能要远高于Guava,没有其他复杂原因我的理解:查了下Caffine就是Guava改进而来的,可以这么说吗- Caffine在读写操作方面的性能更高,是基于异步的操作,将淘汰过期操作与读写进行分离- Caffine采用了一种结合 LRU、LFU的算法W-TinyLFU+,具有高命中率,低内存占用的特点
查看5道真题和解析
点赞 评论 收藏
分享
评论
4
46
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务