简历技能面试问答

变成语言和开发工具

C++新特性

自动类型推导 (auto): 自动推导变量的类型,减少显式类型声明的繁琐

范围 for 循环: 用于遍历容器或数组,简化代码。

nullptr: nullptr 取代 NULL,表示空指针,类型更明确。

lambda 表达式: 允许定义匿名函数,常用于 STL 算法或事件处理。

智能指针 (std::shared_ptr 和 std::unique_ptr): 引入了自动管理内存的智能指针,减少手动管理内存泄漏的风险

右值引用 (&&) 和移动语义: 移动语义允许资源的转移,而不是复制,提高了性能,特别是在容器操作中

线程支持 (<thread> 头文件): 引入了标准线程库,简化了多线程编程

数据结构与算法

数组

链表

队列

排序

快速排序

冒泡排序

选择排序

设计模式

设计模式(工厂模式与单例模式)-CSDN博客

STL标准模板库

STL容器-CSDN博客

系统级编程

指针

内存管理

内存分配策略

静态分配:在编译期分配固定大小的内存

动态分配:运行时根据需要分配内存,如使用malloc

IO操作

I/O多路复用的基本思想,是使用于一个或多个系统调用来监视多个文件描述符,当其中一个或多个文件描述符就绪时,通知程序进行相应的操作。这样就可以再单线程中处理多个I/O操作,而无需为没哟个连接创建一个线程或2进程

select:

最早的I/O多路复用机制,可以监视一组文件描述符,当某个文件描述符就绪时,select返回,程序可以进行相应的读写操作。缺点:存在最大文件描述符限制

poll:

poll不再不再限制文件描述符的数量,使用pollfd结构体数组来监视文件描述符。缺点:高并发场景下仍存在性能问题。

epoll:Linux特有

epoll支持边缘触发和水平触发,能够高效地处理大量并发连接。适用于高负载的服务器应用

进程控制

fork和vfork都是创建进程的方式

fork创建的子进程是对父进程的数据段和代码段进行拷贝·,而vfork是共享数据段、堆栈段

fork通过写时赋值来给子进程开辟独立的地址空间父子进程执行的顺序不确定,而vfork子进程执行结束之后父进程才能执行,vfork()保证子进程先运行,在调用exec之后父进程才可能被调度运行。

进程通信

传统通信:

管道(无名管道、有名管道):

信号(异步):

ipc通信:

消息队列(管道的集合):

共享内存(地址映射的方式):

信号量(信号灯的集合):

网络编程

TCP

TCP流量控制:让发送端根据接收端的的实际接收能力控制发送的数据量

TCP通过滑动窗口来控制流量

TCP滑动窗口:分为发送窗口和接收窗口,实际是操作系统开辟的缓存空间,窗口大小值表示无需等待确认应答,而可以发送数据的最大值。

TCP头部有个字段叫win,也即那个16位的窗口大小,他告诉对方本端的TCP接收缓冲区还能容纳多少字节的数据,从而达到流量控制

TCP拥塞控制:避免发送发的数据填满整个网络。常用算法:慢启动、拥塞避免、拥塞发生、快速恢复。

UDP

Socket

并发和并行编程

线程同步机制

线程同步机制用于解决多个线程同时访问共享资源是可能出现的竞态条件,确保多个线程协作执行任务时的一致性和正确性。在多线程编程中,常见的线程同步机制包括互斥锁、信号量、条件标量、读写锁。

互斥锁:用于保护共享资源,使得同一时间只有一个线程访问该资源

信号量:信号量是一个计数器·,用于控制对共享资源的发变废为宝,允许多个线程同时访问特定数量的资源

条件变量:用于线程之间的等待和通知,当某个条件未满足时,线程可以等待,直到另一个线程发出通知

读写锁:允许多个线程同时读取资源,但是有写操作时,其它读写操作都会被阻塞

递归锁:自旋锁无法获取时,线程会不断的忙等待,即循环检测锁是否可用,而不是阻塞,会消耗CPU资源

线程读写分离

线程读写分离可以提高并发性能的常用编程计数,在需要频繁读取数据但写入操作相对较少的场景中使用

线程池

线程池通过vector管理线程,使用队列存储待执行的任务,线程池通过submit方法提交任务,任务被封装并加入队列中,当任务到来时,通过条件变量唤醒等待的线程,线程执行任务。线程池关闭时会确保任务执行完毕并释放资源

什么是线程池,优缺点,线程池的大小

线程池是通过提前创建一组线程来处理任务,可以提高性能、减少线程创建和销毁的开销

优点:提高系统的资源利用率,减少频繁的线程创建和销毁

缺点:增加了系统的复杂性,增加了管理难度

线程大小:根据CPU的核心数和任务性质来确定

条件变量的作用是什么?

用于线程同步,当某个条件不满足时,线程可以挂起并等待条件变量的通知,以避免忙等待,

用锁来保证数据安全,确保同一时间只有一个线程可以访问这些数据

什么是死锁,如何避免?

死锁是因为两个或多个线程因争夺资源而导致的相互等待状态。

避免方法:按顺序请求资源,使用超时机制

内存池

预先分配大内存块的技术,然后再此内存块内分配小块内存,小内存块使用嵌入式指针相连,这样可以减少频繁的分配和释放,提高性能.

操作系统

Linux常用命令

ls--list directory contents    列出当前文件夹内容

man ls     打开工具手册

mkdir--make directories    创建文件/文件夹

d   目录

rm       删除文件/文件夹

rm -r   删除文件/文件夹

touch   创建文件

cp    复制

cd    改变工作目录  cd/usr/ 切换文件夹

-help  --help   帮助

pwd    打印当前文件夹所在的名字

mv     重命名/移动文件

vi   readme.md     在readme.md内写内容

数据库

SQL语句

创建数据库:create database

创建表:create table

修改表:alter table

删除表:Drop table

插入数据:insert into

更新数据:update

删除数据:delete

授予权限:grant

回收权限:revoke

内连接:inner join

四大特性

原子性:事物是一个完整的操作,要么都成功,要么都不执行

一致性:事务执行的结果符合预期

隔离性:事物与事物之间互不影响

持久性:事物操作成功后修改应该是永久的

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MCU自动测量单元采集振弦式应变计测值的过程

振弦式应变计是一种广泛应用于土木工程、地质勘探等领域的高精度传感器&#xff0c;用于测量结构的应变变化。近年来&#xff0c;随着微控制器单元(MCU)的发展&#xff0c;自动化测量技术得到了极大的提升&#xff0c;使得振弦式应变计的测值采集更加高效和精确。本文将详细介绍…

Linux中使用cp命令的 -f 选项,但还是提醒覆盖的问题

问题&#xff1a; linux 在执行cp的命令的时候&#xff0c;就算是执行 cp -f 也还是会提醒是否要进行替换。 问题原因&#xff1a; 查看别名&#xff0c;alias命令&#xff0c;看到cp的别名为cp -i&#xff0c;那就是说cp本身就是自带覆盖提醒&#xff0c;就算我们加上-f 的…

频率增强通道注意力机制(FECAM)学习总结

本文提出了一种新的频率增强通道注意力机制&#xff08;FECAM&#xff09;&#xff0c;旨在解决时间序列预测中傅里叶变换因吉布斯现象导致的高频噪声问题。FECAM基于离散余弦变换&#xff0c;能自适应地模拟信道间的频率依赖性&#xff0c;有效避免预测误差。实验显示&#xf…

博睿谷IT认证-订阅试学习

在这个信息爆炸的时代&#xff0c;拥有一张IT认证证书&#xff0c;就像拿到了职场晋升的通行证。博睿谷&#xff0c;作为IT认证培训的佼佼者&#xff0c;帮你轻松拿下华为、Oracle等热门认证。下面&#xff0c;让我们一起看看博睿谷如何助你一臂之力。 学习时间&#xff0c;你说…

巨潮股票爬虫逆向

目标网站 aHR0cDovL3dlYmFwaS5jbmluZm8uY29tLmNuLyMvSVBPTGlzdD9tYXJrZXQ9c3o 一、抓包分析 请求头参数加密 二、逆向分析 下xhr断点 参数生成位置 发现是AES加密&#xff0c;不过是混淆的&#xff0c;但并不影响咱们扣代码 文章仅提供技术交流学习&#xff0c;不可对目标服…

脱离枯燥的CRUD,灵活使用Mybatis,根据mybatis动态的xml片段和接口规范动态生成代理类,轻松应付简单业务场景。

需求 需求是这样的&#xff0c;我们有一个数据服务平台的产品&#xff0c;用户先将数据源信息保存到平台上&#xff0c;一个数据源可以提供多个接口服务&#xff0c;而每个接口服务在数据库中存一个具有mybatis语法的sql片段。这样的话&#xff0c;对于一些简单的业务只需要编…

Linux 文件权限详解与管理

文章目录 前言一、文件权限概述1. 权限表示格式2. 权限组合值 二、查看文件权限三、修改文件所有者与所属组1. 使用 chown 修改文件所有者2. 使用 chgrp 修改文件所属组3. 添加所有者 四、修改文件权限1. 符号方式2. 八进制方式3. 实际修改 总结 前言 在 Linux 系统中&#xf…

香港科技大学广州|金融科技学域博士招生宣讲会——武汉大学、华中科技大学

&#x1f514;&#x1f514;&#x1f514;明日宣讲&#x1f514;&#x1f514;&#x1f514; &#x1f490;香港科技大学广州&#xff5c;金融科技学域博士招生宣讲会 &#x1f4cd;武汉大学专场 &#x1f559;时间&#xff1a;2024年9月24日&#xff08;星期二&#xff09;1…

Java项目实战II基于Java+Spring Boot+MySQL的洗衣店订单管理系统(开发文档+源码+数据库)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者 一、前言 随着生活节奏的加快&#xff0c;现代人对便捷、高效服务的需求日益增长&#xff0c;洗衣店作为日常生…

11 - TCPClient实验

在上一个章节的UDP通信测试中&#xff0c;尽管通信的实现过程相对简洁&#xff0c;但出现了通信数据丢包的问题。因此&#xff0c;本章节将基于之前建立的WIFI网络连接&#xff0c;构建一个基础的TCPClient连接机制。我们利用网络调试助手工具来发送数据&#xff0c;测试网络通…

【图虫创意-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…

力扣 困难 154.寻找旋转排序数组中的最小值 II

文章目录 题目介绍题解 题目介绍 题解 题源&#xff1a; 153.寻找旋转排序数组中的最小值 在此基础上&#xff0c;进行二分之前&#xff0c;单独处理一下左指针和最后一个数相同的情况就好了。 class Solution {public int findMin(int[] nums) {int left 0, right nums.le…

conda 虚拟环境安装GDAL

一. 背景 换了新电脑&#xff0c;要重新安装GDAL。从前是下了GDAL的.wheel文件用pip安装&#xff0c;但平时下轮子的网站现在都打不开&#xff0c;比如https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal&#xff0c;不晓得为什么。 后面看了这篇教程解决了问题&#xff08;h…

Codeforces Round 973 (Div. 2) - D题

传送门&#xff1a;Problem - D - Codeforces 题目大意&#xff1a; 思路&#xff1a; 尽量要 最大值变小&#xff0c;最小值变大 即求 最大值的最小 和 最小值的最大 -> 二分答案 AC代码&#xff1a; 代码有注释 #include<bits/stdc.h> using namespace std; #…

C++模拟实现list:list、list类的初始化和尾插、list的迭代器的基本实现、list的完整实现、测试、整个list类等的介绍

文章目录 前言一、list二、list类的初始化和尾插三、list的迭代器的基本实现四、list的完整实现五、测试六、整个list类总结 前言 C模拟实现list&#xff1a;list、list类的初始化和尾插、list的迭代器的基本实现、list的完整实现、测试、整个list类等的介绍 一、list list本…

计算机网络34——Windows内存管理

1、计算机体系结构 2、内存管理 分为连续分配管理和非连续分配管理 在块内存在的未使用空间叫内部碎片&#xff0c;在块外存在的未使用空间叫外部碎片 固定分区分配可能出现内部碎片&#xff0c;动态分区分配可能出现外部碎片 3、逻辑地址和实际地址的互相转换 4、缺页中断 …

k8s中,pod生命周期,初始化容器,容器探针,事件处理函数,理解其设计思路及作用

k8s中&#xff0c;为什么要设计pod 平台直接管理容器不是挺好的吗 为什么要以pod为单位进行管理&#xff0c; 然后把容器放在pod里面 那么有pod和没pod的区别是什么 也就是pod提供了什么作用 这个可以考虑从pod生命周期管理的角度去思考 如图&#xff0c;pod主容器在运行…

JAVA并发编程系列(10)Condition条件队列-并发协作者

一线大厂面试真题&#xff0c;模拟消费者-生产者场景。 同样今天的分享&#xff0c;我们不纸上谈兵&#xff0c;也不空谈八股文。以实际面经、工作实战经验进行开题&#xff0c;然后再剖析核心源码原理。 按常见面经要求&#xff0c;生产者生产完指定数量产品后&#xff0c;才能…

文档矫正算法:DocTr++

文档弯曲矫正&#xff08;Document Image Rectification&#xff09;的主要作用是在图像处理领域中&#xff0c;对由于拍摄、扫描或打印过程中产生的弯曲、扭曲文档进行校正&#xff0c;使其恢复为平整、易读的形态。 一. 论文和代码 论文地址&#xff1a;https://arxiv.org/…

LDRA Testbed(TBrun)软件单元测试_常见问题及处理

系列文章目录 LDRA Testbed软件静态分析_操作指南 LDRA Testbed软件静态分析_自动提取静态分析数据生成文档 LDRA Testbed软件静态分析_Jenkins持续集成&#xff08;自动静态分析并用邮件自动发送分析结果&#xff09; LDRA Testbed软件静态分析_软件质量度量 LDRA Testbed软件…