操作系统
- 进程、线程、协程、内核级用户级
- 进程间通信:管道、消息传递、共享内存……;线程间通信
- 锁机制:互斥锁、信号量、读写锁……
- 虚拟内存、分页分段、页面置换、磁盘调度、(文件系统)
- I/O:阻塞、非阻塞、异步、同步、IO多路复用、select、poll、epoll
- linux:命令:文件处理、权限、问题排查、CPU、……;shell、(内核)
- 死锁各种处理、消费者生产者
网络
- TCP:拥塞、滑动窗口、Nagle、数据传送、TIME_WAIT、状态转换、CLOSE_WAIT超时、;UDP应用场景,和TCP详细区别
- DNS缓存、查询过程;ARP、RARP、物理层协议、数据传输过程、IP、应用层协议
- HTTP:状态码、长连接、报文字段、GET、POST、DELETE……、cookie、session
- HTTPS:安全性验证过程、握手过程、加密过程、对称非对称
数据库
- 索引:聚簇非聚簇、主键索引、唯一索引、B+树、Hash索引、全文索引、组合索引、回表,各种应用场景及优化
- 事务:ACID的具体实现、隔离级别、MVCC实现、redo、undo日志、表锁行锁、意向锁、共享锁排他锁
- MyISAM应用场景、InnoDB:查询引擎、查询过程
- SQL:UNION、GROUP BY、HAVING、聚合函数、LIMIT、DISTINCT
算法
- 时间复杂度分析、算法设计优化过程思考
- 快速排序、堆排序、归并排序、插入排序、选择排序时空复杂度分析及优化思路
- DP、分治、递归、剪枝、异或运算、位操作
- 并查集、单调栈、LRU、Manacher、KMP、字典树、线段树、拓扑排序、treap、spray,跳表
- 红黑树、AVL树:各种操作时空复杂度、区别及各自具体实现
- 最短路:dijkstra;最小生成树:kruskal
JAVA
- 基础:Object、static、final、容器:ArrayList、HashMap、TreeMap、HashSet、TreeSet、LinkedList、LinkedHashMap……、sleep、wait、反射、面向对象、设计模式
- 并发:AQS、并发容器、并发工具、Thread实现及原理、线程池:创建、区别、拒绝策略;synchronized、volatile、ReentrantLock、锁升级
- JVM:GC:CMS、G1、Full GC、调优、回收算法;双亲委派、类加载、字节码
- Spring、SpringMVC、Mybatis、log4j、单元测试、jetty、tomcat、Maven、(SpringBoot、SpringCloud)
Go
- 基本语法、struct、interface、defer、slice、map
- select、case
- channel
- goroutine
- sync包:Mutex、RWMutex、Cond、WaitGroup……
- GC
大数据
- BitMap、布隆过滤器
- Hash
- MapReduce
- HBase、HDFS(OceanBase、Hive)
- Storm、Spark、Flink
分布式
- CAP、BASE及各种应用场景
- Raft、Paxos、两阶段提交……及各自具体实现
- 一致性哈希、数据分布
- 负载均衡
- 线性一致、强一致、弱一致各种应用场景及实现方法
- 存储、通信方式、RPC、分布式锁、Zookeeper
系统设计
- MQ:Kafka
- 缓存:Redis
- RPC:Thrift、(gRPC、Dubbo)、调用过程
- 工具:Git、Quartz、IDEA
- 攻击:SQL注入、DDos、SYN攻击
- 容器:Docker