C/C++ 面试通关秘籍:LeetCode & 剑指Offer 高频题精讲
本课程深度剖析 C/C++ 面试核心技术,涵盖语言基础、设计模式、数据结构与算法、操作系统、数据库、网络编程、分布式系统等多个领域,助你从容应对各大厂技术面试。
课程内容
- C/C++ 语言:static 关键字、指针与引用、类型转换、深拷贝与浅拷贝、const 关键字、extern 关键字等。
- C++ 面向对象:面向对象三大特性、多态实现原理、菱形继承、override 与 final 关键字、C++ 类型推导、左值引用与右值引用、智能指针等。
- C++ 标准库:vector 内存增长机制、list 底层实现原理、deque 底层实现原理、priority_queue 底层实现原理、unordered_map 底层实现原理、迭代器及其种类、STL 容器线程安全性等。
- 设计模式:单例模式、工厂模式、抽象工厂模式、代理模式、装饰器模式、组合模式、策略模式、责任链模式、观察者模式、模板方法模式、迪米特原则、里氏替换原则、开闭原则、依赖倒置原则等。
- 数据结构与算法:数组、链表、栈、队列、二叉树、堆、哈希表等数据结构;排序算法、查找算法、递归、动态规划等算法;字符串、矩阵、二叉树等经典问题。
- 操作系统:进程与线程的区别、进程间通信方式、进程调度策略、用户态与内核态、内存管理、malloc 内存分配、页面置换算法、CPU cache 一致性、系统调用流程、线程同步方式、磁盘调度算法等。
- 数据库 MySQL:索引优化、SQL 注入、事务特性、MVCC 原理、死锁问题、InnoDB 与 MyISAM 区别、最左匹配规则、覆盖索引、undolog 与 redolog 作用、数据库范式、SQL 执行流程、视图等。
- 网络编程:TCP 三次握手与四次挥手、TCP 可靠性保证、UDP 与 TCP 区别、CLOSE_WAIT 与 TIME_WAIT 状态、连接半打开与半关闭状态、Reactor 与 Proactor 模型、水平触发与边缘触发、客户端连接方式、用户态读写缓冲区、MTU 与 MSS、Linux 网络包收发流程等。
- Redis:数据类型与底层实现、持久化机制、事务、淘汰策略、高可用方案、缓存雪崩/穿透/击穿、分布式锁、Redis Cluster 原理、单线程模型、应用场景等。
- Kafka:架构原理、Zookeeper 作用、消息顺序消费、高可用机制、数据丢失避免、重复数据消费避免、消费位置控制、ACK 机制、性能优化等。
- gRPC:服务启动流程、服务类型、多路复用、keepalive、自定义 resolver 与 balancer、全链路追踪、客户端连接状态、服务函数列表获取、stream 限流等。
- etcd:任期概念、Raft 状态机切换、Raft 一致性保证、节点宕机处理、leader 选举、防止遗漏数据等。
- Docker & Kubernetes:镜像与容器、容器状态、数据拷贝、Dockerfile 指令、生产环境监控、镜像构建原则、容器数据持久化等。
- 数据库集群:MySQL 主从复制、分库分表、Redis 高可用方案、Redis Cluster 原理等。
- 设计方案:海量数据处理,topk,定时器,缓存一致性,岛屿问题。