后端面试|字节一面|生活服务-成都-27日常

面经
- 自我介绍
- 操作系统
  - 进程和线程的概念
    - 持有资源的不同
    - 调度上从Linux task_struct的角度上来说, 说明两者之间没什么区别
    - 区别在于持有的资源, 根据任务是I/O密集型还是CPU密集型来去选择模型
  - 协程
    - 更轻量级的线程
    - go中的m:n的协程模型
    - 用户态的切换, 开销减小
  - CPU调度的内容
    - 开始直接回答的task_struct, 被反问是不是确定的时候改成了调度的是指令流
  - 详细描述一下进程的切换的过程
    - 只说了一下会切换PCB, 更换CPU上的寄存器, 然后执行. 说没有了解得很详细
  - 守护进程, 僵尸进程, 孤儿进程
    - 守护进程会随着父进程的销毁而销毁
    - 僵尸进程, 不太了解, 回答的是一个创建了的, 但是不会被调度, 同时没有被销毁的进程
    - 孤儿进程, 父进程被销毁了进程, 追问了什么情况下会产生, 回答的fork之后, 父进程销毁了, 子进程会被托孤给Linux1号进程
- 计算机网络
  - TCP和UDP的区别
  - TCP和UDP可以共享一个四元组吗
    - 回答的走的不同的协议栈, 记录四元组的hash表是相互独立的
  - TCP四次挥手
    - TIME_WAIT的2MSL
    - CLOSE_WAIT状态
- 数据结构
  - 二叉树, 平衡二叉树, 满二叉树, 完全二叉树, 最优二叉树
  - MySQL的索引为什么使用B+树
  - 索引失效的场景
  - MySQL的数据varchar, char, text
  - text和varchar之间的区别
- Redis
  - zset的底层实现
- 算法
  - 基于滑动窗口实现的一个限流识别算法 (做了巨久, 大概35min, 给了提示才完成)
    - 感觉要死在这上面了
面试总结
很好体验的一场面试, 这个面试官不问项目, 认为是学习项目, 着重基础知识, 尤其是和408高度相关的, 没有Java(虽然感觉问得也不深, 他有点想迫不及待地想进入算法环节, 给了我一种奇妙的像学长的温柔的感觉, 尽可能问得基础)
个人不足之处: 在写算法之前没有认真想清楚怎么写, 也不是很紧张, 就是感觉很好写就直接上了, 最后实现模式差了很多, 后面被提示才反应过来使用滑动窗口
全部评论
已过
1 回复 分享
发布于 09-01 16:51 山西
算法有链接吗 或者具体点的描述 “CPU调度的内容 - 开始直接回答的task_struct, 被反问是不是确定的时候改成了调度的是指令流” 这个问题具体是啥呀
点赞 回复 分享
发布于 09-04 22:05 浙江
是商家平台么
点赞 回复 分享
发布于 09-02 17:03 四川
接好运
点赞 回复 分享
发布于 09-02 12:45 重庆
接好运
点赞 回复 分享
发布于 09-02 08:11 湖南

相关推荐

查看22道真题和解析
点赞 评论 收藏
分享
评论
2
25
分享

创作者周榜

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