└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # C/C++后台开发工程师学习路线图 2 | 3 | ## C/C++语言基础知识整理 4 | 5 | ### 常见问题整理 6 | - 指针与引用的区别,C 与 C++ 的区别,struct 与 class 的区别 7 | - struct 内存对齐问题,sizeof 与 strlen 区别 8 | - 面向对象的三大特性:封装、继承、多态 9 | - 类的访问权限:private、protected、public 10 | - 类的构造函数、析构函数、赋值函数、拷贝函数 11 | - 移动构造函数与拷贝构造函数对比 12 | - 内存分区:全局区、堆区、栈区、常量区、代码区 13 | - 虚函数实现动态多态的原理、虚函数与纯虚函数的区别 14 | - 深拷贝与浅拷贝的区别 15 | - 一些关键字:static, const, extern, volatile 等 16 | - 四种类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast 17 | - 静态与多态:重写、重载、模板 18 | - 静态多态和动态多态 19 | - 四种智能指针及底层实现:auto_ptr、unique_ptr、shared_ptr、weak_ptr 20 | - 右值引用、完美转发(c++11) 21 | - std::move函数 22 | - 一些重要的 STL:vector, list, map, set 等。 23 | - 容器对比,如 map 与 unordered_map 对比,set 与 unordered_set 对比,vector 与 list 比较等。 24 | - 智能指针 25 | - C 语言的内存机制 26 | - malloc free new delete 区别 27 | - 28 | 29 | ### C++相关书籍整理 30 | #### 基础学习 31 | - 32 | - 33 | #### 进阶学习 34 | - <深度探索C++对象模型> 35 | - Effective C++ 36 | - Effective STL 37 | - 38 | - B 站侯杰老师的视频 39 | 40 | ## 操作系统 41 | 42 | ### 操作系统常见问题整理 43 | - 系统调用过程 44 | - 进程线程区别 45 | - 进程通信方式 46 | - 线程通信方式 47 | - 进程上下文切换方式 48 | - 线程上下文切换方式 49 | - 同步、异步、阻塞、非阻塞 50 | - 静态链接和动态链接 51 | - 虚拟内存 52 | - 用户态和内核态的区别以及切换代价 53 | - 互斥锁和自旋锁底层区别 54 | - 孤儿进程和僵尸进程 55 | - 虚拟内存 56 | - 异常处理(中断、陷阱、故障、终止) 57 | - 操作系统内存管理 58 | - 虚拟文件系统(VFS) 59 | - 银行家算法 60 | - 实现一个 LRU cache 61 | - 内存泄露的场景、处理方法 62 | 63 | ### 书籍推荐 64 | - 鸟哥 linux 私房菜 65 | - 深入理解计算机操作系统(CSAPP) 66 | - 现代操作系统 67 | - Linux系统编程接口 68 | - Linux内核设计与实现 69 | 70 | ## 网络编程(涉及计算机网络) 71 | ### 计算机网络常见问题整理 72 | - TCP基础知识 73 | - TCP 如何实现可靠通信 74 | - TCP 三次握手,四次挥手 75 | - TCP 流量控制,拥塞避免 76 | - SYN 泛洪 77 | - 粘包和分包 78 | - timewait 等待2MSL原因 79 | - 为什么要有 mac 地址,mac 地址从何而来 80 | - IO 多路复用(select,poll,epoll) 81 | - 在浏览器数据一个网址所经历的过程 82 | - 边缘触发和水平触发 83 | - 基于事件驱动的reactor模式 84 | - 反向代理、负载均衡 85 | 86 | ### 书籍推荐 87 | - UNP(UNIX网络编程) 88 | - APUE(UNIX 高级环境编程) 89 | - 《TCP/IP详解卷1:协议》 90 | - 《图解HTTP》 91 | - 《Linux高性能服务器编程》 92 | - Linux多线程服务器端编程 93 | - 深入理解 nginx 94 | 95 | ## 数据结构与算法 96 | - 堆排序 97 | - 单调栈、单调队列(接雨水、最大矩阵面积) 98 | - 99 | 100 | ## 数据库 101 | ### Mysql 102 | - 一个 sql 语句,数据库中做了什么? 103 | - 104 | 105 | ### Redis 106 | - 五种数据结构 107 | - 持久化(AOF、RDB) 108 | - 数据分片 109 | - 主从复制 110 | - redis 集群 111 | 112 | 113 | # 小项目 114 | - 写一个文件事件处理器 115 | - 写一个网络库(参考 muoduo) 116 | 117 | 118 | --------------------------------------------------------------------------------