0819、0820梳理及一些面试题梳理
一、抓包分析

二、HTTP服务器

三、动态库与静态库
四、一些面试题
- 指针数组和数组指针的区别:指针数组本质是一个数组,只是数组中存储的是指针变量。数组指针存储的是该数组的起始地址,对该指针来说每偏移一个单位就是偏移了一整个数组的地址
- 结构体字节对齐:1、结构体中每个成员,分配内存时要从上到下按顺序数据类型对齐一次 2、成员分配内存结束后要整体对齐一起,32位系统中,4对齐;64位系统中,8对齐
- TCP和UDP的区别:1、TCP是稳定的面向链接的传输协议,其中每次收发都需要应答包应答。其效率较低浪费资源较多,收发不同步,会出现沾包现象:即在发送间隔较短数据较小的数据包可能会沾在一起发送。一般TCP使用在需要高质量传输或需要可靠通信的传输场合 2、UDP传输:是一种面向无连接的不稳定的尽最大努力传输的传输协议,其传输效率高,实时性强,且收发同步不会沾包。但由于是无连接的传输,不稳定可能会出现数据丢失、数据重复、数据失序等情况。同时UDP传输会限制每次的传输大小,多出部分直接忽略。常用于:广播,组播中
- 同步通信和异步通信的区别:
- 对多线程的理解:多线程是进程的轻量版,可以同时处理多个任务,在linux中使用多线程相关函数时需要引进线程相关支持库。一般一个进程中至少有一个线程。由于多线程是在一个进程下进行时可以同时使用一个进程的共享资源即临界资源,而多个线程同时访问临界资源会出现竞态,所以引入了同步互斥的概念来解决竞态问题。互斥是指同一时刻只能有一个任务,如互斥锁,同步是指多个任务有先后顺序的执行,如无名变量、条件变量。(后面继续可补充几种多线程间通信的具体讲解)
- 互斥锁:完成线程互斥的方式,互斥锁本质上是一种特殊的临界资源,该临界资源在同一时刻只能被一个线程所拥有,当另一线程想拥有已经被某线程拥有的互斥锁时会被阻塞,知道某线程解锁互斥锁。互斥锁中会出现死锁的现象,原因是1、资源不能被多个线程共享。2、一个线程即持有一个资源也在等待另一个线程所持有的资源,这是持有和等待。3、互斥锁这一临界资源不能强制抢占。4、某线程集合中,每个线程都在等待下一线程中的资源。为防止死锁现象的出现,在编译时要注意避免持有和等待,并进行一个获取资源的顺序规定,这里常用到条件变量,并设置超时机制。在运行前要进行对死锁问题的相关检查。
- 大小端验证:cpu架构不同导致多字节整数的存储方式不同,大致分为大端存储和小端存储。一般使用指针或共用体进行验证。网络字节序中是大端存储,但主机字节序中需要根据主机架构区别,所以在传输过程中需要进行主机字节序和网络字节序的相互转换。
- Gcc四步编译:gcc四步编译是:预处理、编译、汇编、连接。预处理中进行条件编译的处理、头文件的展开等,编译中对程序进行语法语义上的分析,生成汇编程序,汇编中将汇编程序生成一个二进制目标程序,连接过程中将目标程序与相关库进行连接,生成一个可执行程序
- Socket:套接字函数,用于tcp传输协议和udp传输协议中,创建一个套接字文件来完成网络通信中的数据收发操作
- http协议和tcp协议、udp协议间的关系:http协议全称超文本传输协议,是一种用于在万维网中传输html文件的传输协议,属于应用层协议。tcp协议,udp协议都是传输层协议。其中http协议使用的是tcp协议。
- Ip地址和子网掩码如何决定网卡所在的网段:子网掩码和ip地址同时使用,通过ip地址&子网掩码得到网段。
- OSI七层模型、TCP\IP四层: 物数网传会表应、网络接口层,网络层,运输层,应用层
- 栈和队列的区别:栈和队列都是操作受限的线性表。栈的插入和删除只允许在同一端进行操作,有先进后出的特点。队列的插入和删除必须在异端进行,有先进先出的特点。队列一般就是指顺序队列,为解决假溢满现象,常使用的时循环顺序队列
- 顺序表和链表的区别:顺序表和链表都是线性表,顺序表采用物理内存连续的存储方式,可以直接通过下标定位元素,但插入和删除时需要移动大量元素且存储数据有上限。链表的存储地址不一定连续,但存储无上限且可以在任意位置中间插入元素。但进行查找时必须从头一个一个查找比较麻烦。
- 三次握手和四次挥手: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应答包,被动方收到应答包后关闭连接。
- 指针和指针变量分别是指什么:指针是指存储某数据的内存地址编号,通过指针可以以地址的角度找到内存中的数据。指针变量时指指针存储地址,是一个特殊的数据类型,大小为8字节。通常我们将指针变量简称为指针。
- 共享内存和消息队列的优缺点:共享内存和消息队列都是进程间的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 内核中,pinctrl子系统是一个专门用于管理和控制 SoC引脚复用和配置的子系统。SoC 通常具有大量的引脚(pin),这些引脚可以被配置为不同的功能,比如 GPIO(通用输入输出&…...
网络通信要素
网络介绍 定义:将具有独立功能的多台计算机通过通信线路和通信设备连接起来,在网络管理软件及网络通信协议下,实现资源共享和信息传递的虚拟平台。 学习网络的目的: 能够编写基于网络通信的软件或程序,通常来说就是网…...
day03_作业
一、简答题 继承的格式与好处 格式:class A extends B 好处:1.可以实现代码的复用,将共性的代码向上抽取,抽取到父类中。需要使用这些属性和行为的类,通过继承即可使用。2.当需要添加新的功能时,可以通过…...
pyinstaller程序打包,资源嵌入exe
参考:https://blog.csdn.net/qq_48979387/article/details/132359366 一、参数说明 -F 最终打包为一个可执行文件。-w 取消Windows显示窗口-add-data ‘dll;dll’,将当前目录dll下的文件打包到可执行文件的dll中,最终会在解压文件的dll文件…...
如何使用 OCR 和 GPT-4o mini 轻松提取收据信息
利用 OCR 和强大的 GPT-4o 迷你模型对收据进行信息提取 利用 OCR 和强大的 GPT-4o 迷你模型对收据进行信息提取 欢迎来到雲闪世界。,我将向您展示如何从收据中提取信息,并提供收据的简单图像。首先,我们将利用 OCR 从收据中提取信息。然后&a…...
go 事务
事务处理 首先启动事务时一定要做错误判断建议在启动事务之后马上写defer方法在defer方法内对err进行判断,如果全局中有err!nil就回滚全局中err都为nil则提交事务在提交事务之后我们可以定义一个钩子函数afterCommit,来统一处理事务提交后的逻辑。 示例…...
C,数据结构,多进程线程,网络编程面试题总结
目录 1.指针数组和数组指针 2.结构体字节对齐 3.Tcp和Udp的区别 4.同步通信和异步通信的区别 5.多线程理解 6.大小端验证 7.互斥锁相关问题 8.共享内存特点 9.c中的指针 10.Gcc编译 11.Socket的了解 12.Ip地址和子网掩码如何决定网卡所在的网段 13.数据结构中栈与…...
【Cesium学习】着色器详解【待进一步总结】
在Cesium中,drawCommand 和 CustomShader 是与渲染管线和自定义渲染效果相关的两个重要概念,但它们各自有不同的作用和应用场景。下面我将分别详解这两个概念。 drawCommand drawCommand 是 Cesium 渲染引擎内部使用的一个概念,它代表了单个…...
【3】静态路由(Static routing)
目录 一、有类路由和无类路由 二、路由的基本知识 三、配置 路由的组成: 四、特殊——默认路由 五、优点和缺点 六、实验 数据通信是双向的,路由器不同的接口属于不同的广播域和冲突域 一、有类路由和无类路由 有类路由:有ABC类别之…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...

