字节跳动—测试开发实习生-广告系统面经

一面:

Tcp和udp的区别

网络传输协议

TCP 安全 三次四次 传输慢 顺序到达 有错误检测 适用于敏感数据传输 、高可靠性

UDP 传输快 丢包率高 安全性不高 不保证顺序 适用于不敏感的信息传播、实时性

输入一个抖音.com,ip地址解析失败是什么原因

域名错误 本地dns无法解析域名 网络连接问题 防火墙阻止dns请求 地区限制(可使用vpn)

Dns解析的详细过程

域名-》IP地址

1 浏览器检查本地是否缓存了对应的ip地址

2如果没有 浏览器检查本地hosts文件和dns缓存是否有ip地址

3上述缓存都没有的情况下 dns开始查询

4dns首先查询根域名-》顶级域-》权威域名服务器

5权威域名服务器返回IP地址给dns 浏览器获得ip地址后 发出https请求 建立连接 加载页面

操作系统问了复制和粘贴的实现

操作系统管理剪贴板时,通常会使用内存缓冲区。每当执行复制或剪切操作时,剪贴板会在内存中为数据分配空间。数据可以以不同的格式存在(例如文本、图像、文件路径等)。在粘贴时,系统会根据数据的格式将其传递给目标应用。

算法题:不同路径

class Solution:

    def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:

        # dp[i][j] 00-ij的路径数量

        # dp[i][j] = dp[i-1][j] + dp[i][j-1]

        m,n=len(obstacleGrid),len(obstacleGrid[0])

        # 特殊情况

        # 初始化dp

        # 填充dp

        if obstacleGrid[0][0]==1 or obstacleGrid[m-1][n-1]==1:

            return 0

        dp=[[0]*n for _ in range(m)]

       

        dp[0][0]=1

        for i in range(1,m):

            if obstacleGrid[i][0]==0:

                dp[i][0]=dp[i-1][0]

       

        for j in range(1,n):

            if obstacleGrid[0][j]==0:

                dp[0][j]=dp[0][j-1]

       

        for i in range(1,m):

            for j in range(1,n):

                if obstacleGrid[i][j]==0:

                    dp[i][j]=dp[i-1][j]+dp[i][j-1]

       

        return dp[m-1][n-1]

提问:问面试官负责什么工作内容,什么时候出结果

二面:(40min)2022.3.7

简单聊了一下实习,问我实习是不是自己找的,有没有做过测试开发相关的工作

端口查询命令netstategrep

查找文件命令find

1. 查找端口的命令

在操作系统中,可以使用以下命令来查询和管理端口。

Linux/Mac 系统:

  • 查看某个端口是否被占用(netstat):

netstat -tuln | grep <端口号>

  • 这条命令可以查看正在监听的端口,-t 表示显示 TCP 连接,-u 表示显示 UDP 连接,-l 显示监听的端口,-n 显示数字格式的 IP 地址和端口。
  • 查看某个端口的占用情况(lsof):

lsof -i :<端口号>

  • 该命令可以显示指定端口被哪个进程占用。
  • 查看端口占用进程及 PID(ss):

ss -tuln | grep <端口号>

  • ss 是比 netstat 更快速的替代工具,显示网络连接信息。

2. 查找文件的命令

Linux/Mac 系统:

  • 查找指定文件(find):find 命令可以根据指定的路径和文件名来查找文件。可以使用通配符(如 *)来进行模糊查询。
  • 查找文件包含的内容(grep):grep 命令可以查找文件中的内容,-r 表示递归搜索。
  • 查找文件的详细信息(locate):locate 使用系统索引查找文件,比 find 更加快速(需要事先更新数据库,通常是通过 updatedb)。
  • 查找文件的类型(file):file 命令会显示文件的类型,如文本文件、二进制文件等。

算法题:气象(要求两种解法,第二种要求O(n))

有没有遇到什么挫折,怎么解决的

能实习多久

然后闲扯

提问:测试开发需要提高哪里能力

问题定位能力(测试) 逻辑思考的全面性、细致性(测试 开发代码)

三面(50min)2022.3.17

1自我介绍

2为什么做测试开发

3你做测试开发有什么优势

4仔细介绍实习和研究生的两个项目,我的主要贡献是什么

 5代码:反转链表 

如果是环形链表,会发生什么问题,会输出什么

6测试用例:微信朋友圈测试用例

功能 点赞刷新评论发表删除好友限制 UI 性能 响应时间 并发操作 兼容 不同机型 pc 安全 网络攻击 敏感pyq识别处理

全部评论
前端咋面起测开来了
点赞 回复 分享
发布于 02-16 02:16 广东

相关推荐

1️⃣自我介绍:【⌚️10分钟】点评:流水账,有些磕磕绊绊,自我介绍环节的项目介绍的很详细,非常冗余。优化:写逐字稿,背诵,提升语言表达能力。2️⃣经常问题的问题优化:【⌚️20分钟】1:transform结构了解吗?回答点评:回答的很简单,5分吧,说了transform的结构是encode-decode结构,分块,每个块里面有四个组建,MHA、FFN、LN、残差链接,介绍和理解不深刻。提升指导:梳理回答逻辑结构,讲解MHA、FFN、LN、残差链接的添加逻辑和含义,其中MHA给出代码层面理解,从2分钟的回答变成6分钟的回答。2:多头自注意力机制是啥?公式是啥?代码你会写吗?回答点评:讲了公式,但是掌握的不够细致,pytorch代码框架不熟悉,attention_mask机制没有写出来。提升指导:讲述代码的原理,如何使用代码回答问题,展示自己的理解深刻。3:rag中的多路召回是什么?embeding为啥用智源的BGE-large/Base?回答点评:使用了BM25和向量召回,但是没有讲出来两个的区别和联系提升指导:先讲原理,再讲述下语义理解能力和泛化能力的区别,计算的效率,两个互为补充等。3️⃣不会回答的问题指导:【⌚️40分钟】1:&nbsp;&nbsp;LN不太会回答,看网上的回答很多,但是不是理解层面。2:我的向量召回是faiss做的,和这个相关的问题我如何准备?3:经常会被问到rag用的啥框架,这个问题如何回答?还需要准备框架的知识吗?4:面试官经常问我,rag的模型是啥?有做微调吗?如果不做微调怎么回答?5:大模型还需要补充那些知识?📳对于想求职算法岗的同学,如果想参加高质量项目辅导,提升面试能力,欢迎后台联系。
查看8道真题和解析
点赞 评论 收藏
分享
一笑而过2222:4. Redis缓存更新机制 核心策略: - 过期删除:通过 expire 设置键的过期时间,到期后由后台线程(惰性删除+定期删除)处理。 - 惰性删除:客户端访问时检查是否过期,过期则删除。 - 定期删除:每隔一段时间随机检查部分键,删除过期键(通过配置 hz 控制检查频率)。 - 主动更新:应用主动调用 set / del 等命令更新缓存,常见场景: - 数据变更时(如数据库更新后),同步更新缓存。 - 缓存失效前(如提前30秒),后台线程主动刷新(“缓存预热”)。 - 淘汰策略:当内存不足时,按策略淘汰旧数据(如LRU、LFU、随机等,见第5点)。 5. Redis的LRU机制(Least Recently Used) 原理: - 近似LRU:Redis并非严格实现LRU,而是采样少量键(默认5个),淘汰其中最久未使用的键,通过 maxmemory-samples 参数调整采样数量。 - 实现方式:每个键维护 lru 字段(记录最后一次访问时间),淘汰时比较采样键的 lru 值。 - 优化策略: - Redis 4.0引入LFU(最不常用) 策略,结合访问频率和时间淘汰数据。 - 可通过 maxmemory-policy 配置淘汰策略,如 allkeys-lru (所有键中使用LRU)、 volatile-lru (仅过期键中使用LRU)。 6. Redis集群 核心架构(以Redis Cluster为例): - 分片机制: - 数据按哈希槽(Hash Slot)分布,共16384个槽,每个节点负责部分槽。 - 键通过 CRC16(key) % 16384 计算归属的槽,路由到对应节点。 - 节点角色: - 主节点(Master):负责读写操作,维护数据和槽信息。 - 从节点(Slave):复制主节点数据,主节点故障时可自动选举为新主(通过Raft协议)。 - 高可用机制: - 自动故障转移:当主节点下线,从节点通过投票成为新主,保证服务不中断。 - 数据冗余:每个主节点至少有一个从节点,避免单点故障。 - 集群通信: - 节点间通过Gossip协议交换状态信息(如节点存活、槽分配),维护集群拓扑。 - 典型部署: - 至少3个主节点(每个主带1个从),形成3主3从架构,保证容错性(最多允许1个主节点故障)。 补充:Redis集群的优缺点 - 优点: - 支持海量数据(通过分片扩展内存)。 - 高可用性(故障自动转移)。 - 读写分离(从节点可承担读请求)。 - 缺点: - 不支持多键事务(跨节点键无法原子操作)。 - 客户端需处理分片路由(或通过中间件如Codis、Twemproxy)。 - 集群扩展时需迁移数据(通过 redis-trib 工具自动迁移槽)。
字节跳动二面531人在聊
点赞 评论 收藏
分享
评论
4
43
分享

创作者周榜

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