当前位置: 首页 > news >正文

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

一、抓包分析

二、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通信方式。消息队列通过在内核空间维护一个队列,消息队列中的消息不会消失,但是存取必须遵循先进先出原则。共享内存是通过多进程共享一个外部的物理内存来完成多进程间通信的。效率较高,但具有时效性,共享内存中的内存会被下一次传入的数据覆盖。

相关文章:

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

一、抓包分析 二、HTTP服务器 三、动态库与静态库 四、一些面试题 指针数组和数组指针的区别:指针数组本质是一个数组,只是数组中存储的是指针变量。数组指针存储的是该数组的起始地址,对该指针来说每偏移一个单位就是偏移了一整个数组的地…...

HttpUtils工具类(一)常见的HttpUtils工具类及如何自定义java的http连接池

目录 一、几种常见的Http调用方式 1. 使用 Apache HttpClient 2. 使用 OKhttpClient 3. 使用第三方库(Hutool)的http链接池 4. 使用 Spring RestTemplate 5. 使用 Java 原生的HttpURLConnection 二、总结 常用三种HttpUtils对比总结 一、几种常见…...

使用 Lombok 遇到一个问题

起因是换了一个电脑,重新从服务器上拉了一个项目。项目是由maven构建的,在控制台中使用mvn命令编译项目时,没有任何问题,编译成功。如下图: 可是idea里面的源码,却标红了,如下: 错误…...

Linux基础环境开发工具gcc/g++ make/Makefile

1.Linux编译器-gcc/g使用 1. 预处理(进行宏替换) 预处理功能主要包括宏定义,文件包含,条件编译,去注释等。 预处理指令是以#号开头的代码行。 实例: gcc –E hello.c –o hello.i 选项“-E”,该选项的作用是让 gcc 在预处理结束后停止编译过程。 选项“-o”是指目标…...

ES 模糊查询 wildcard 的替代方案探索

一、Wildcard 概述 Wildcard 是一种支持通配符的模糊检索方式。在 Elasticsearch 中,它使用星号 * 代表零个或多个字符,问号 ? 代表单个字符。 其使用方式多样,例如可以通过 {"wildcard": {"field_name": "value&…...

Linux安装MQTT 服务器(图文教程)

MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,专为低带宽和不稳定的网络环境设计,非常适合物联网(IoT)应用。 官网地址:https://www.emqx.com/ 一、版本选择 根据自己…...

【TCP】核心机制:延时应答、捎带应答和面向字节流

文章目录 延时应答捎带应答面向字节流粘包问题方案一:指定分隔符方案二:指定数据的长度 TCP 报头首部长度保留(6 位)选项序号确认序号 延时应答 尽可能降低可靠传输带来的性能影响 提升性能>让滑动窗口变大 如果我们立即返回 …...

题解:AT_abc352_e [ABC352E] Clique Connect

[题目通道]([ABC352E] Clique Connect - 洛谷) 鄙人今日写人生第一篇题解 希望管理大大通过 首先,我们先看题: 它说一共有n个点,m回操作。。。 每次操作 都有 一个Ki 和 Ci Ki代表有Ki个点,Ci代表每条边所赋的边权 一看就知道这是个最小生成树的板子…...

【代码随想录训练营第42期 Day32打卡 - 从零开始动态规划 - LeetCode 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

目录 一、做题心得 二、动规五步走 三、题目与题解 题目一:509. 斐波那契数 题目链接 题解1:记忆性递归 题解2:动态规划 题目二:70. 爬楼梯 题目链接 题解:动态规划 题目三:746. 使用最小花费爬楼…...

源码构建LAMP

目录 一、安装Apache 二、安装Mysql 三、安装PHP 四、安装论坛 一、安装Apache 1.cd 到opt目录下面,将压缩包拉进Xhell 2.解压缩apr和httpd压缩包 tar xf apr-1.6.2.tar.gz tar xf apr-util-1.6.0.tar.gz tar xf httpd-2.4.29.tar.bz2 3.将apr-1.6.2 移动到ht…...

Java:封装树结构

实体类 public class DictTreeselectVO {private String value;private String label;/*** 节点*/private String parentId;private List<DictTreeselectVO> children new ArrayList<DictTreeselectVO>();public String getValue() {return value;}public void s…...

linux内核 pintrl子系统

1、什么是pinctrl子系统 在 Linux 内核中&#xff0c;pinctrl子系统是一个专门用于管理和控制 SoC引脚复用和配置的子系统。SoC 通常具有大量的引脚&#xff08;pin&#xff09;&#xff0c;这些引脚可以被配置为不同的功能&#xff0c;比如 GPIO&#xff08;通用输入输出&…...

网络通信要素

网络介绍 定义&#xff1a;将具有独立功能的多台计算机通过通信线路和通信设备连接起来&#xff0c;在网络管理软件及网络通信协议下&#xff0c;实现资源共享和信息传递的虚拟平台。 学习网络的目的&#xff1a; 能够编写基于网络通信的软件或程序&#xff0c;通常来说就是网…...

day03_作业

一、简答题 继承的格式与好处 格式&#xff1a;class A extends B 好处&#xff1a;1.可以实现代码的复用&#xff0c;将共性的代码向上抽取&#xff0c;抽取到父类中。需要使用这些属性和行为的类&#xff0c;通过继承即可使用。2.当需要添加新的功能时&#xff0c;可以通过…...

pyinstaller程序打包,资源嵌入exe

参考&#xff1a;https://blog.csdn.net/qq_48979387/article/details/132359366 一、参数说明 -F 最终打包为一个可执行文件。-w 取消Windows显示窗口-add-data ‘dll;dll’&#xff0c;将当前目录dll下的文件打包到可执行文件的dll中&#xff0c;最终会在解压文件的dll文件…...

如何使用 OCR 和 GPT-4o mini 轻松提取收据信息

利用 OCR 和强大的 GPT-4o 迷你模型对收据进行信息提取 利用 OCR 和强大的 GPT-4o 迷你模型对收据进行信息提取 欢迎来到雲闪世界。&#xff0c;我将向您展示如何从收据中提取信息&#xff0c;并提供收据的简单图像。首先&#xff0c;我们将利用 OCR 从收据中提取信息。然后&a…...

go 事务

事务处理 首先启动事务时一定要做错误判断建议在启动事务之后马上写defer方法在defer方法内对err进行判断&#xff0c;如果全局中有err!nil就回滚全局中err都为nil则提交事务在提交事务之后我们可以定义一个钩子函数afterCommit&#xff0c;来统一处理事务提交后的逻辑。 示例…...

C,数据结构,多进程线程,网络编程面试题总结

目录 1.指针数组和数组指针 2.结构体字节对齐 3.Tcp和Udp的区别 4.同步通信和异步通信的区别 5.多线程理解 6.大小端验证 7.互斥锁相关问题 8.共享内存特点 9.c中的指针 10.Gcc编译 11.Socket的了解 12.Ip地址和子网掩码如何决定网卡所在的网段 13.数据结构中栈与…...

【Cesium学习】着色器详解【待进一步总结】

在Cesium中&#xff0c;drawCommand 和 CustomShader 是与渲染管线和自定义渲染效果相关的两个重要概念&#xff0c;但它们各自有不同的作用和应用场景。下面我将分别详解这两个概念。 drawCommand drawCommand 是 Cesium 渲染引擎内部使用的一个概念&#xff0c;它代表了单个…...

【3】静态路由(Static routing)

目录 一、有类路由和无类路由 二、路由的基本知识 三、配置 路由的组成&#xff1a; 四、特殊——默认路由 五、优点和缺点 六、实验 数据通信是双向的&#xff0c;路由器不同的接口属于不同的广播域和冲突域 一、有类路由和无类路由 有类路由&#xff1a;有ABC类别之…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

在Spring Boot中集成RabbitMQ的完整指南

前言 在现代微服务架构中&#xff0c;消息队列&#xff08;Message Queue&#xff09;是实现异步通信、解耦系统组件的重要工具。RabbitMQ 是一个流行的消息中间件&#xff0c;支持多种消息协议&#xff0c;具有高可靠性和可扩展性。 本博客将详细介绍如何在 Spring Boot 项目…...

Linux中INADDR_ANY详解

在Linux网络编程中&#xff0c;INADDR_ANY 是一个特殊的IPv4地址常量&#xff08;定义在 <netinet/in.h> 头文件中&#xff09;&#xff0c;用于表示绑定到所有可用网络接口的地址。它是服务器程序中的常见用法&#xff0c;允许套接字监听所有本地IP地址上的连接请求。 关…...