当前位置: 首页 > 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类别之…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统&#xff0c;64位 下载路径 oracle 11g 安装包...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...