0819、0820梳理及一些面试题梳理

news2024/11/15 8:01:22

一、抓包分析

二、HTTP服务器

三、动态库与静态库

四、一些面试题

  1. 指针数组和数组指针的区别:指针数组本质是一个数组,只是数组中存储的是指针变量。数组指针存储的是该数组的起始地址,对该指针来说每偏移一个单位就是偏移了一整个数组的地址
  2. 结构体字节对齐:1、结构体中每个成员,分配内存时要从上到下按顺序数据类型对齐一次  2、成员分配内存结束后要整体对齐一起,32位系统中,4对齐;64位系统中,8对齐
  3. TCP和UDP的区别1、TCP是稳定的面向链接的传输协议,其中每次收发都需要应答包应答。其效率较低浪费资源较多,收发不同步,会出现沾包现象:即在发送间隔较短数据较小的数据包可能会沾在一起发送。一般TCP使用在需要高质量传输或需要可靠通信的传输场合  2、UDP传输:是一种面向无连接的不稳定的尽最大努力传输的传输协议,其传输效率高,实时性强,且收发同步不会沾包。但由于是无连接的传输,不稳定可能会出现数据丢失、数据重复、数据失序等情况。同时UDP传输会限制每次的传输大小,多出部分直接忽略。常用于:广播,组播中
  4. 同步通信和异步通信的区别
  5. 对多线程的理解:多线程是进程的轻量版,可以同时处理多个任务,在linux中使用多线程相关函数时需要引进线程相关支持库。一般一个进程中至少有一个线程。由于多线程是在一个进程下进行时可以同时使用一个进程的共享资源即临界资源,而多个线程同时访问临界资源会出现竞态,所以引入了同步互斥的概念来解决竞态问题。互斥是指同一时刻只能有一个任务,如互斥锁,同步是指多个任务有先后顺序的执行,如无名变量、条件变量。(后面继续可补充几种多线程间通信的具体讲解)
  6. 互斥锁:完成线程互斥的方式,互斥锁本质上是一种特殊的临界资源,该临界资源在同一时刻只能被一个线程所拥有,当另一线程想拥有已经被某线程拥有的互斥锁时会被阻塞,知道某线程解锁互斥锁。互斥锁中会出现死锁的现象,原因是1、资源不能被多个线程共享。2、一个线程即持有一个资源也在等待另一个线程所持有的资源,这是持有和等待。3、互斥锁这一临界资源不能强制抢占。4、某线程集合中,每个线程都在等待下一线程中的资源。为防止死锁现象的出现,在编译时要注意避免持有和等待,并进行一个获取资源的顺序规定,这里常用到条件变量,并设置超时机制。在运行前要进行对死锁问题的相关检查。
  7. 大小端验证:cpu架构不同导致多字节整数的存储方式不同,大致分为大端存储和小端存储。一般使用指针或共用体进行验证。网络字节序中是大端存储,但主机字节序中需要根据主机架构区别,所以在传输过程中需要进行主机字节序和网络字节序的相互转换。
  8. Gcc四步编译:gcc四步编译是:预处理、编译、汇编、连接。预处理中进行条件编译的处理、头文件的展开等,编译中对程序进行语法语义上的分析,生成汇编程序,汇编中将汇编程序生成一个二进制目标程序,连接过程中将目标程序与相关库进行连接,生成一个可执行程序
  9. Socket:套接字函数,用于tcp传输协议和udp传输协议中,创建一个套接字文件来完成网络通信中的数据收发操作
  10. http协议和tcp协议、udp协议间的关系:http协议全称超文本传输协议,是一种用于在万维网中传输html文件的传输协议,属于应用层协议。tcp协议,udp协议都是传输层协议。其中http协议使用的是tcp协议。
  11. Ip地址和子网掩码如何决定网卡所在的网段:子网掩码和ip地址同时使用,通过ip地址&子网掩码得到网段。
  12. OSI七层模型、TCP\IP四层:  物数网传会表应、网络接口层,网络层,运输层,应用层
  13. 栈和队列的区别:栈和队列都是操作受限的线性表。栈的插入和删除只允许在同一端进行操作,有先进后出的特点。队列的插入和删除必须在异端进行,有先进先出的特点。队列一般就是指顺序队列,为解决假溢满现象,常使用的时循环顺序队列
  14. 顺序表和链表的区别:顺序表和链表都是线性表,顺序表采用物理内存连续的存储方式,可以直接通过下标定位元素,但插入和删除时需要移动大量元素且存储数据有上限。链表的存储地址不一定连续,但存储无上限且可以在任意位置中间插入元素。但进行查找时必须从头一个一个查找比较麻烦。
  15. 三次握手和四次挥手:1、三次握手:一定是客户端发起的。第一次握手:客户端向服务端发送一个SYN握手包,并进入syn_sent状态。第二次握手:服务器端接收到来自客户端的SYN握手包后,进入syn_rcvd状态,向客户端发送一个SYN握手包和一个ACK应答包。第三次握手:客户端收到服务器端的SYN握手包和ACK应答包后进入establish状态,并向服务器端发送一个ACK应答包,服务器也进入establish状态。2、四次挥手:可以是服务器发起也可以是客户端发起。第一次挥手:主动方向被动方发送一个FIN挥手包并进入FIN_WAIT_1状态。第二次挥手:被动方向主动方发送一个ACK应答包,并进入CLOKSE_WAIT状态(该状态下如果数据还没有传输完毕可以继续传输),当主动方受到ACK应答包后进入FIN_WAIT_2状态。第三次挥手:数据发送完毕后,被动方发送一个FIN挥手包并进入LAST_ACK状态。第四次挥手:主动方收到了FIN挥手包向被动方发送一个ACK应答包,被动方收到应答包后关闭连接。
  16. 指针和指针变量分别是指什么:指针是指存储某数据的内存地址编号,通过指针可以以地址的角度找到内存中的数据。指针变量时指指针存储地址,是一个特殊的数据类型,大小为8字节。通常我们将指针变量简称为指针。
  17. 共享内存和消息队列的优缺点:共享内存和消息队列都是进程间的IPC通信方式。消息队列通过在内核空间维护一个队列,消息队列中的消息不会消失,但是存取必须遵循先进先出原则。共享内存是通过多进程共享一个外部的物理内存来完成多进程间通信的。效率较高,但具有时效性,共享内存中的内存会被下一次传入的数据覆盖。

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

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

相关文章

如何寻找专业精密机械零件代加工工厂

在现代工业生产中,精密机械零件的加工质量直接关系到产品的性能和可靠性。因此,寻找一家专业的精密机械零件代加工工厂至关重要。以下时利和整理分享的一些关于寻找专业精密机械零件代加工工厂的关键步骤和要点,帮助你找到合适的合作伙伴。 首…

想投资现货黄金?在TMGM开户需要多少钱?

最近,越来越多的人开始关注黄金投资,希望通过黄金来对冲风险、保值增值。而选择一家可靠的交易平台是进行黄金投资的第一步。TMGM作为全球知名的外汇交易商,也为投资者提供了黄金交易服务。那么,在TMGM开户投资黄金,需…

尚硅谷VUE项目实战,前端项目-尚品汇2

尚硅谷VUE项目实战,前端项目-尚品汇2 1、路由传参 2、重写push

数字转化为千位符形式, 百分比形式

Intl.NumberFormat 千位符: function formatAsRMB(num){return new Intl.NumberFormat(zh-CN,{style: decimal, //将数字格式化为十进制数currency: CNY, // 货币为人民币minimumFractionDigits: 0 // 表示不显示小数部分}).format(num)}const number 12345678co…

【C++进阶学习】第十四弹——特殊类设计——探寻各种情况下类的应用

前言: C类是C很重要的一个部分,在很多应用场景中都发挥着十分重要的作用,今天我们来讲解几个特殊场景下类的应用 目录 一、特殊类:只能在栈/堆上创建对象 1. 只在栈上创建对象 2. 只在堆上创建对象 二、特殊类:不能…

8.20 QT

1.思维导图 2. 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTime> #include <QTimerEvent> #include <QTextToSpeech>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidge…

Zookeeper中 Server 服务器的四种工作状态详解

Zookeeper中 Server 服务器的四种工作状态详解 1. LOOKING2. FOLLOWING3. LEADING4. OBSERVING&#xff08;3.3.0及以后版本&#xff09; &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; ZooKeeper集群中的服务器主要存在以下四种工作状态&a…

32位入门级MCU(ARM Cortex-M3内核)STM32F103系列

推荐: 32位入门级MCU(ARM Cortex-M3内核)中的六边形战士——STM32F103系列 为什么MCU中需要ADC模块 原创 IPBrain平台君 集成电路大数据平台 2024年08月19日 19:18 北京 自从平台君发布了几期关于MCU的文章之后,后台有很多小伙伴们留言。其中有位读者问平台君:平台君,…

python构建一个web程序

from flask import Flaskapp Flask(__name__)app.route(/) def hello_world():return 欢迎来到我的Python Web程序!if __name__ __main__:app.run(debugTrue)1、安装flask D:\Users\USER\PycharmProjects\pythonProject1\p01>pip install flask WARNING: Ignoring invalid…

LLM才硬件(显存)需求

参考&#xff1a; https://www.hardware-corner.net/guides/computer-to-run-llama-ai-model/ GitHub - hiyouga/LLaMA-Factory: Efficiently Fine-Tune 100 LLMs in WebUI (ACL 2024) 直观的一个表&#xff1a;

多模态学习Multimodal Learning:人工智能中的多模态原理与技术介绍初步了解

多模态学习&#xff08;Multimodal Learning&#xff09;是机器学习中的一个前沿领域&#xff0c;旨在综合处理和理解来自不同模态的数据。模态可以包括文本、图像、音频、视频等。随着数据多样性和复杂性增加&#xff0c;多模态学习在自然语言处理、计算机视觉、语音识别等领域…

存储和传输/寻找大端字节序/有哪款MCU或MPU是真支持大端?

文章目录 概述ARM基础ARM 不生产芯片ARM分类和命名ARM指令集和架构ARM架构和内核ARM内核和芯片其他处理器架构 在手册中找寻字节序的踪迹ST 32 MCU 没有大端&#xff1f;Cortex-M 系列Cortex-A 系列Cortex-R 系列小结 芯片外设支持大端字节序DMAC 支持大端字节序的情况CRC 支持…

SpringBoot接入高德地图猎鹰轨迹服务API

SpringBoot接入高德地图猎鹰轨迹服务API 一、AP文档 猎鹰轨迹服务API文档 二、页面图 1、需登录账号&#xff0c;申请对应的应用key值 三、代码部分&#xff1a; 1、控制层 RestController RequestMapping("/gdTrack") public class TrackController {private …

VS Code开发C#(.NET)之快速入门

本篇快速介绍在VS Code中开发C#的完整说明和示例&#xff1a; 环境准备 安装VS Code&#xff1a; 前往Visual Studio Code官网 下载并安装VS Code。 安装.NET SDK&#xff1a; C#是基于.NET框架的&#xff0c;因此需要安装 .NET SDK。 前往 .NET官网 下载并安装适用于操…

【微信小程序】自定义组件 - 插槽

1. 什么是插槽 2. 单个插槽 在小程序中&#xff0c;默认每个自定义组件中只允许使用一个 进行占位&#xff0c;这种个数上的限制叫做单个插槽。 3. 启用多个插槽 在小程序的自定义组件中&#xff0c;需要使用多 插槽时&#xff0c;可以在组件的 .js 文件中&#xff0c;通过…

数据库之间表的迁移

什么时候用&#xff1f; 相信大家在开发中&#xff0c;会先在本地和测试环境的数据库去建立表&#xff0c;没问题了再去正式环境建立相同的表。或者我们有旧系统和新系统&#xff0c;要把旧系统里面的数据库某个功能的相关的表给导出来&#xff0c;这时候就会发生表的数据迁移…

【网络安全】漏洞挖掘:IDOR实例

未经许可&#xff0c;不得转载。 文章目录 正文 正文 某提交系统&#xff0c;可以选择打印或下载passport。 点击Documents > Download后&#xff0c;应用程序将执行 HTTP GET 请求&#xff1a; /production/api/v1/attachment?id4550381&enamemId123888id为文件id&am…

Vue3 的 expose 介绍

在 Vue 3 中&#xff0c;expose 是一个用于控制组件内部方法和属性暴露给父组件的新功能。这使得父组件可以调用子组件内部的方法或访问其数据&#xff0c;尤其在使用组合式 API&#xff08;Composition API&#xff09;时&#xff0c;这种能力非常有用。 1. 基本用法 expose…

目标检测 | yolov9 原理和介绍

相关系列&#xff1a; 目标检测 | yolov1 原理和介绍 目标检测 | yolov2/yolo9000 原理和介绍 目标检测 | yolov3 原理和介绍 目标检测 | yolov4 原理和介绍 目标检测 | yolov5 原理和介绍 目标检测 | yolov6 原理和介绍 目标检测 | yolov7 原理和介绍 目标检测 | yolov8 原理和…

【LeetCode每日一题】——301.删除无效的括号

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 广度优先搜索 二【题目难度】 困难 三【题目编号】 301.删除无效的括号 四【题目描述】 给…