1. 计算机基础
CPU
1. 多核概念
2. CPU cache,L1,L2,L3 cache
3. cache line
4. 伪共享
5. 原子操作
内存
虚拟内存
页表/TLB
磁盘
磁盘类型:SSD,机械磁盘,NVME,NVM
MMAP
顺序读写/随机读写
内核 cache/预读
cache脏页flush
磁盘cache
fsync/datasync/sync
文件
本地文件
远程文件
虚拟文件系统
卷
软链接/硬链接
文件句柄/资源
网络
IO多路复用(五种IO模型,EPOLL/POLL/SELECT)
TCP
HTTP/HTTPS
进程/线程
子进程
僵尸进程,孤儿进程
fork pid,共享,写时复制
区别联系
共享和不共享
进程切换/开销
线程切换/开销
堆,栈
地址分区
系统调用
进程的用户态和内核态
CPU上下文切换
中断上下文切换
内核态/用户态
权限
CPU上下文切换
中断
中断的处理过程
原子性
内存可见性
CPU cache失效
cache line/伪共享
略
锁, volatile
临界区
volatile的原理和作用
并行和并发
略
2. 算法
2.1 链表
链表复制,复杂链表复制,反转,局部反转,排序,单向链表,双向链表,有环链表,相交链表
2.2 队列
链表构建队列,数组构建队列,栈构建队列,优先级队列(堆)
2.3 栈
链表构建栈
2.4 树
二叉树,完全二叉树,搜索树,排序树,B树,B+树,红黑树,哈夫曼编码树,字典树
前序遍历,中序遍历,后序遍历,层序遍历 (递归非递归)
增删改查
2.5 堆
堆排序
优先级队列
多路归并
2.8 跳表
跳表的随机索引算法
跳表的时间复杂度
跳表的结构
2.9 动态规划
背包问题
鸡蛋楼层问题
2.10 贪心算法
排列组合
2.12 排序
冒泡排序/归并排序/多路归并排序/插入排序/希尔排序/快速排序/基数排序/桶排序/堆排序
特殊排序/超大文件排序/排序树排序
前K个排序
2.13 bitmap
原理
2.14 布隆过滤器
原理
2.15 定时器
定时器的设计
考虑线程,效率,水表设计
2.16 HashMap
负载因子, 扩展策略,索引计算优化,初始值16的意义
2.17 LRU
hashmap+list/淘汰策略
如何解决随机读取的干扰
网友评论