C++ 如何进阶?

一、C++基础(3个月)

1、面向对象的三大特性:封装、继承、多态

2、类的访问权限:private、protected、public

3、类的构造函数、析构函数、赋值函数、拷贝函数

4、移动构造函数与接贝构造函数对比

5、深接贝与浅贝的区别

6、空类有哪些函数?空类的大小?

7、内存分区:全局区、堆区、栈区、常量区、代码区

8、C++与C的区别

9、struct与class的区别

10、struct内存对齐

11、new/delete与malloc/free的区别

12、内存泄露的情况

13、sizeof与strlen对比

14、指针与引用的区别

15、野指针产生与避免

16、多态:动态多态、静态多态

17、虚函数实现动态多态的原理、虚函数与纯虚函数的区别

18、继承时,父类的析构函数是否为虚函数?构造函数能不能为虚函数?为什么?

19、静态多态:重写、重载、模板

20、static关键字:修饰局部变量、全局变量、类中成员变量、类中成员函数

21、 const关键字:修饰变量、指针、类对象、类中成员函数

22、extern关键字:修饰全局变量

23、volatile关键字:避免编译器指令优化

24、四种类型转换:static_cast、 dynamic_cast const cast、 reinterpret_cast

25、右值引用

26、std:move函数

27、四种智能指针及底层实现:auto_ptr、unique_ptr、SShared_ptr、weakptra

28、shared_ptr中的循环引用怎么解决 (weak_ptr)

29、vectora与list比较

30、vector送代器失效的情况

31、map与unordered_map对比

32、set与unorderedset对比

33、STL容器空间配置器

二、计算机网络 (1个月)

1、OSI7层网络模型:应用层、表示层、会话层、传输层、网络层、链路层、物理层

2、TCP/IP四层网络模型:应用层、运输层、网际层、接口层。综合OSI与TCP/IP模型,学习五层网络模型;从上向下架构:应用层、传输层、网络层、链路层、物理层

链路层

3、MTU

4、MAC地址

网路层

5、地址解析协议

6、为啥有IP地址还需要MAC地址?同理,为啥有了MAC地址还需要IP地址?

7、网络层转发数据报的流程

8、子网划分、子网掩码

9、网络控制报文协议ICMP

10、ICMP应用举例:PING、traceroute

传输层

11、TCP与UDP的区别及应用场景

12、 TCP首部报文格式(SYN、ACK、FIN、RST必须知道)

13、 TCP滑动窗口原理

14、 TCP超时重传时间选择

15、 TCP流程控制

16、 TCP拥塞控制 一定要弄清楚与流量控制的区别

17、 TCP三次握手及状态变化。为啥不是两次握手?

18、 TCP四次挥手及状态变化。为啥不是三次挥手

19、 TCP连接释放中TIMEWAIT状态的作用

20、 SYN泛洪攻击。如何解决?

21、 TCP粘包

22、 TCP心跳包

23、 路由器与交换机的区别

24、 UDP如何实现可靠传输

推荐学习视频

4个小时搞懂tcp/ip协议栈,从tcp/ip协议栈原理到实现一个网络协议栈icon-default.png?t=N7T8https://www.bilibili.com/video/BV1NA411y7Vc/

应用层

25、 DNS域名系统。采用TCP还是UDP协议?为什么?

26、 FTP协议(了解)

27、 HTTP请求报文与响应报文首部结构

28、 HTTP1.0、HTTP1.1、HTTP2.0对比

29、 HTTP与HTTPS对比

30、 HTTPS加密流程

31、 方法:GET、 HEAD、POST、PUT、 DELETE

32、 状态码:1、2、、3、4、5

33、 cookie与session区别

34、 输入一个URL到显示页面的流程 (越详细越好,搞明白这个,网络这块就差不多了)

三、操作系统 (1个月)

1、进程与线程区别

2、线程同步的方式:互锁、自旋锁、读写锁、条件变量

3、互锁与自旋锁的底层区别

4、孤儿进程与户进程

5、死锁及避免

6、多线程与多进程比较

7、进程间通信:PIPE、FIFO、消息队列、信号量、共享内存、socket

8、管道与消息队列对比

9、fork进程的底层:读时共享,写时复制

10、线程上下文切换的流程

11、 进程上下文切换的流程

12、 进程的调度算法

13、 阻塞10与非阻塞IO

14、 同步与异步的概念

15、 静态链接与动态链接的过程

16、 虚拟内存概念(非常重要)

17、 MMU地址翻译的具体流程

18、 缺页处理过程

19、 缺页置换算法:最久未使用算法、先进先出算法、最佳置换算法

操作系统的内容看起来不是很多,实际上每个问题答案的底层原理要弄懂还是很考验基本功的。比如:互锁与自旋锁的区别,实际上涉及到阻塞时线程的状态是不一样的。互锁阻塞的线程是挂起的,此时系统会优先执行其它可执行的线程,就会将阻塞的线程切换到可执行线程,而当临 界区执行的时间非常短时,此时线程切换频繁、开销较大,此时就会采用自旋锁的方式,让阻塞的线程处于忙等状态。

推荐学习视频

【计算机底层原理】linux内核源码分析教程,内容涵盖(进程管理,内存管理,网络协议栈,文件系统,设备驱动,中断管理,性能优化)icon-default.png?t=N7T8https://www.bilibili.com/video/BV1GE421K7aJ/

四、 网络编程?(1个月)

1、IO多路复用:select、 poll epoll的区别 (非常重要,几乎必问,回答得越底层越好,要会使用)2、手撕一个最简单的server端服务器 (socket、 bind、 listen accept这四个API一定要非常熟练)3、线程池4、基于事件驱动的reactor模式5、 边沿触发与水平触发的区别6、 非阻塞IO与阻塞I0区别

推荐学习视频

3天学会linux c/c++高性能网络编程,多案例解析,附面试网络八股文!!(socket、tcp/ip、udp、epoll、网络io、协程...)icon-default.png?t=N7T8https://www.bilibili.com/video/BV1rC41187WQ/

五、数据结构与算法“及刷题 (2个月)

1、数组

2、链表

3、栈

4、队列

5、堆

6、 二叉树:二叉搜索树、平衡树、红黑树

7、 B树、B+树

8、 哈希表及哈希冲突

9、 排序算法:冒泡排序、简单选择排序、插入排序、希尔排序、归并排序、堆排序、快速排序(要求能够面试时手写出堆排序和快速排序)

10、 二分法:旋转数组找target

11、 回溯法:全排列、复原IP地址

12、 动态规划(掌握基本的动态规划的几个题其实就够了,如:斐波那契数列、 接雨水、股票的最佳买入时机)

推荐学习视频

《剑指offer》c/c++后端服务器开发教程之数据结构与算法,内容包含(B树、红黑树、时间轮、跳表、布隆过滤器、hash、动态规划等)icon-default.png?t=N7T8https://www.bilibili.com/video/BV16T42117xZ/

六、 mySQL数据库 (7天~15天)

1、数据存储引擎:InnoDB、 myISAM Memory2、数据库索引类型及原理:B+树索引、 哈希表索引3、锁:悲观锁、乐观锁4、事务:事务的四大特性 (ACID)、事务并发的三大问题、事务隔离级别及实现原理5、多版本并发控制实现机制 MCVV 原理参考书籍:《高性能MySQL》

推荐学习视频

后端技术:中间件开发(redis、nginx、mysql)icon-default.png?t=N7T8https://www.bilibili.com/video/BV1iM4y1C7mQ/

七、项目 (2个月)

如果时间够的话就可以写一个项目,当然大部分人写的项目都是一个烂大街的项目,也就是 “web 高性能服务器”。其实就是根据陈硕大神写的 《Linux高性能服务器编程:使用muduo c++网络库》进行改编,当然啦,读懂这本书还是很耗时的,学习其中的思想也会受益浅的。

推荐学习视频

2024年,c/c++后端开发值得推荐的开源项目,包含(协程ntyco、网络协议栈ntytcp、nginx、redis 、openresty、skynet..)icon-default.png?t=N7T8https://www.bilibili.com/video/BV1zH4y1H7WW/

八、总结

按照上面推荐的内容来学习的话,要学习得深入一点的话1年的时间肯定需要的,甚至2年也不足为 其。当然对于非科班的学生来说,大部分都没有充足的时间的,这时候建议尽量把C++基础、计算 机网络、操作系统、 网络编程、数据结构与算法这五个部分的内容学得很扎实,大概6个月的时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/7130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++语言】类和对象--默认成员函数 (中)

文章目录 前言类的六个默认成员函数:1. 构造函数概念特性做了什么?易错注意:显式定义和默认构造函数 2. 析构函数概念特征做了什么?注意事项: 3.拷贝构造函数概念特征做了什么?注意事项: 4.赋值运算符重载…

CellMarker | 人骨骼肌组织细胞Marker大全!~(强烈建议火速收藏!)

1写在前面 分享一下最近看到的2篇paper关于骨骼肌组织的细胞Marker&#xff0c;绝对的Atlas级好东西。&#x1f44d; 希望做单细胞的小伙伴觉得有用哦。&#x1f60f; 2常用marker&#xff08;一&#xff09; general_mrkrs <- c( MYH7, TNNT1, TNNT3, MYH1, MYH2, "C…

ComfyUI 基础教程(十三):ComfyUI-Impact-Pack 面部修复

SD的WebUI 中的面部修复神器 ADetailer,无法在ComfyUI 中使用。那么如何在ComfyUI中进行面部处理呢?ComfyUI 中也有几个面部修复功能,比如ComfyUI Impact Pack(FaceDetailer),以及换脸插件Reactor和IPAdapter。 ComfyUI-Impact-Pack 是一个功能强大的插件,专为 ComfyUI …

淘宝扭蛋机小程序开发:开启你的惊喜之旅

一、扭出新世界&#xff0c;惊喜不断 在这个充满无限可能的数字时代&#xff0c;淘宝扭蛋机小程序为你带来了一种全新的购物与娱乐体验。扭蛋机&#xff0c;这个充满童趣和惊喜的玩具&#xff0c;如今在我们的小程序中焕发出新的活力&#xff0c;为你带来一波又一波的惊喜与快…

【CTF Web】XCTF GFSJ0485 simple_php Writeup(代码审计+GET请求+PHP弱类型漏洞)

simple_php 小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。 解法 &#xfeff;<?php show_source(__FILE__); include("config.php"); $a$_GET[a]; $b$_GET[b]; if($a0 and $a){echo $flag1; } if(is_numeric($b)){exit(); } if($b>1234){ech…

jquery项目 html使用export import方式调用模块

jquery的老项目&#xff0c;引入vue3, 需要方便使用export, import方式引用一些常用的方法与常量 导出模块 export js/numberUtil.js /*** Description:* Author Lani* date 2024/1/10*//* * 【金额】 保留2位小数&#xff0c;不四舍五入 * 5.992550 >5.99 , 2 > 2.…

【Kaggle】练习赛《洪水数据集的回归预测》(下)

前言 上篇《洪水数据集的回归预测》(上) 介绍了该数据集非常特殊之处&#xff0c;各特征都非常类似&#xff0c;没有特别之处&#xff0c;各特征之间的相关系数几乎为零。同时&#xff0c;各类模型不敏感&#xff0c;最理想的模型居然是线性回归&#xff0c;决定系数 R 2 R^2 …

64位Office API声明语句第118讲

跟我学VBA&#xff0c;我这里专注VBA, 授人以渔。我98年开始&#xff0c;从源码接触VBA已经20余年了&#xff0c;随着年龄的增长&#xff0c;越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友&#xff0c;都来学习VBA,利用VBA,起码可以提高…

达梦数据库导入数据问题

进行数据导入的时候遇到了导入数据问题 第一个问题&#xff1a; 该工具不能解析此文件&#xff0c;请使用更高版本的工具 这个是因为版本有点低&#xff0c;需要下载最新的达梦数据库 第二个问题&#xff1a; &#xff08;1&#xff09;本地编码&#xff1a;PG_GBK, 导入文…

全国31省对外开放程度、经济发展水平、ZF干预程度指标数据(2000-2022年)

01、数据介绍 自2000年至2022年&#xff0c;中国的对外开放程度不断深化、经济发展水平不断提高、ZF不断探索并调整自身在经济运行中的角色和定位&#xff0c;以更好地适应国内外环境的变化&#xff0c;也取得了举世瞩目的成就。这一期间&#xff0c;中国积极融入全球经济体系…

[机器学习-02] 数据可视化神器:Matplotlib和Seaborn工具包实战图形大全

目录 引言 正文 01-Matplotlib包的使用示例 1&#xff09;Matplotlib导入方式 2&#xff09;折线图绘制 3&#xff09;散点图绘制 4&#xff09;柱状图绘制 5&#xff09;饼图绘制 6&#xff09;等高线图绘制 7&#xff09;箱线图绘制 8&#xff09;较为复杂…

7zip如何只压缩文件不带上级目录?

在使用7zip进行文件压缩的时候&#xff0c;如果直接选择要压缩的文件进行压缩&#xff0c;得到的压缩包则会多包含一层顶层目录&#xff0c;解压缩之后需要点击两次才能进入到实际目录中&#xff0c;为了解决这个问题&#xff0c;本文根据探索找到了一种解决办法。 如下是一个演…

表空间的概述

目录 表空间的属性 表空间的类型 永久性表空间(PermanentTablespace) 临时表空间(Temp Tablespace ) 撤销表空间(Undo Tablespace) 大文件表空间(BigfileTablespace) 表空间的状态 联机状态(Online) 读写状态(Read Write) 只读状态(Read) 脱机状态(Offline) Oracle从…

Java_从入门到JavaEE_09

一、构造方法/构造器 含义&#xff1a;和new一起是创建对象的功能 特点&#xff1a; 与类名相同的方法没有返回项 注意&#xff1a; 当类中没有写构造方法时&#xff0c;系统会默认添加无参构造&#xff08;无参数的构造方法&#xff09;构造方法可以重载的 有参构造好处&…

透明加密软件选哪个好?选择时一定要注意以下三点

透明加密软件哪个好&#xff1f; 这是许多企事业单位在面临数据防泄漏问题时经常思考的问题。随着信息技术的发展&#xff0c;企业的数据安全变得越来越重要。透明加密技术作为一种有效的数据保护手段&#xff0c;被越来越多的企业所采用。然而&#xff0c;市场上的透明加密软…

Django高级表单处理与验证实战

title: Django高级表单处理与验证实战 date: 2024/5/6 20:47:15 updated: 2024/5/6 20:47:15 categories: 后端开发 tags: Django表单验证逻辑模板渲染安全措施表单测试重定向管理最佳实践 引言&#xff1a; 在Web应用开发中&#xff0c;表单是用户与应用之间进行交互的重要…

OpenHarmony实战开发-请求自绘制内容绘制帧率

对于基于XComponent进行Native开发的业务&#xff0c;可以请求独立的绘制帧率进行内容开发&#xff0c;如游戏、自绘制UI框架对接等场景。 接口说明 开发步骤 说明&#xff1a; 本范例是通过Drawing在Native侧实现图形的绘制&#xff0c;并将其呈现在NativeWindow上 1.定义Ark…

《第一行代码》第二版学习笔记(7)——使用通知和摄像头

文章目录 一、使用通知二、调用摄像头 介绍了通知基于8.0的使用方法和如何调用摄像头拍照 一、使用通知 public void onClick(View v) {if (v.getId() R.id.send_notice){Intent intent new Intent(this,NotificationActivity.class);PendingIntent pi PendingIntent.getAct…

【哈希表】Leetcode 14. 最长公共前缀

题目讲解 14. 最长公共前缀 算法讲解 我们使用当前第一个字符串中的与后面的字符串作比较&#xff0c;如果第一个字符串中的字符没有出现在后面的字符串中&#xff0c;我们就直接返回&#xff1b;反之当容器中的所有字符串都遍历完成&#xff0c;说明所有的字符串都在该位置…

springcloud第4季 springcloud-alibaba之分布式事务seata

一 seata介绍 1.1 seata介绍 1.seata是一款解决分布式事务的解决方案&#xff0c;致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 2.seata的几种术语&#xff1a;一个中心&#xff1a;全局事务id TC(Transaction Coordinator):事务协调者。负责维护全局和分…