一、语言
(一)Go
- 进程、线程、协程的区别
- Golang协程间如何通信
- GMP模型
- Golang Map底层
- Golang的channel底层
- 如何实现Map的有序查找(利用一个辅助slice)
- sync包了解吗
- Mutex与RWMutex
- 怎么实现Map的并发安全(sync.Map,底层实际上用了一个Map缓存)
- defer函数的使用场景(延迟Close、recover panic)
- Golang GC(三色标记法,插入屏障、删除屏障、混合写屏障)
- Map可以用数组作为Key吗(数组可以,切片不可以)
- Channel的阻塞和非阻塞(顺带问了select用法)
(二)gin
(三)Python
(四)django
(五)nginx
- 什么是Nginx?为什么要用Nginx?Nginx的优缺点?
- Nginx怎么处理请求的?为什么Nginx性能这么高?
- 什么是正向代理和反向代理?优缺点
- Nginx负载均衡的算法怎么实现的?策略有哪些?
- 盘点那些关于Nginx的常考面试题 - 知乎
- nginx高可用?
- nginx 是如何实现并发的?
- 为什么nginx不使用多线程?
- nginx常见的优化手段有哪些?
- 502错误可能原因有哪些?
二、DB
(一)mysql
- 数据库索引,hash索引与B+树索引的适用场景,为什么用B+树索引
- 主键与非主键和索引的关系(InnoDB主键一定是聚簇索引,非主键如果是索引的话,查询可能需要回表)
(二)redis
- Redis为什么快(内存数据库,单线程IO多路复用)
- 缓存雪崩、击穿、穿透是什么
三、工具命令
(一)linux
(二)shell
(三)Git
- git的底层原理有了解吗
四、数据结构与算法
(一)数据结构
(二)算法
- 鸡蛋掉落:JAVA程序设计:鸡蛋掉落(LeetCode:887)_信仰.的博客-CSDN博客_ykc什么意思
(三)设计模式
- 消费者模式
- 单例模式
四、计算机网络和操作系统
(一)计算机网络
- 讲一下TCP的拥塞控制
(二)操作系统
- 什么是异步,Linux异步有几种方式
- poll和epoll什么区别
- 进程间通信有几种方式