网站首页 文章专栏 软件开发岗位面试通识.md
软件开发岗位面试通识.md
创建于:2021-07-04 08:18:04 更新于:2024-11-23 08:07:31 羽瀚尘 414

操作系统

进程线程协程

  • 三者的概念
  • 三者的区别
  • 三者的通信方式
  • 三者的应用场景
  • 在 linux 系统中,三者是如何管理的?如用了什么数据结构,如何调度?
  • 有写过相关代码的话,各自的 api 如何调用?
  • select,poll,epoll
  • fork,copy-on-write (COW)

内存

  • swap 如何换页?

死锁与避免

  • 死锁的四个条件
  • 针对四个条件,如何避免

  • 都有哪些锁
  • 悲观锁、乐观锁
  • 自旋锁
  • 重量级锁、轻量级锁
  • compare and set (CAS)
  • 读写锁概念、优劣、实现、适用场景、优化

用户态与内核态

  • 内核空间与用户空间通信的方式有哪些

计算机网络

  • 三次握手与四次挥手
  • 三次握手的原因
  • 四次握手的原因
  • 长链接
  • HTTP2.0
  • HTTP 状态码
  • HTTPS、对称加密、非对称加密、RSA 的大概原理
  • 负载均衡怎么做
  • 四层负载均衡和七层负载均衡
  • 常问的:从输入一个网址到展示网页的全过程
  • 计算机网络分为几层,每层都是什么
  • 正常的连接,服务器断电了会发生什么;服务器主动关机呢?
  • get 与 post 区别

基本数据结构与算法

  • 链表、快慢指针
  • 树、递归模式的三种遍历、非递归的三种遍历、从先序和中序遍历恢复
  • 平衡二叉树、求深度、搜索二叉树、红黑树(概念)
  • 数的路径和、最近共同祖先、右视图、按层遍历
  • 贪心
  • 动态规划:求编辑距离、背包问题
  • 回溯
  • 字符串匹配
  • 各种排序算法与优化,尤其是快排的优化
  • 桶排序
  • 生成素数
  • 并查集
  • 前缀树
  • 排列组合
  • 摩尔投票法
  • 队列、优先队列
  • 大堆、小堆
  • 二分查找

设计模式

  • 单例
  • 工厂
  • 观察者

数据库

  • 索引的概念,实现,有哪几种索引,什么时候索引会失效
  • 三大范式
  • 事务的 ACID 与四种隔离级别
  • 增删改查的 sql 如何写
  • 什么是连接池
  • 从提交一个 sql 语句,到结果返回,mysql 做了什么
  • 数据库负载过重怎么办?如何分库分表?
  • 几种 join
  • 给数据表增加一列,mysql 是如何处理的
  • redis

其他

还有很多东西偶尔也会问到,以后工作也会用

  • 如何产生随机数
  • 微服务,如何划分微服务
  • 服务治理
  • service mesh
  • 泳道
  • k8s 有哪些组件,创建一个 pod 的过程
  • mq
  • 网站如何限流、熔断、削峰
  • linux 命令:ps、awk、ulimit、top

以上内容仅根据自身面试经历总结形成,并不完备,仍需要自己总结并有所取舍