自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 AI相关面试题

2026-07-28 22:25:27 30

原创 Android开发

(通常崩溃)。

2026-07-27 23:17:47 297

原创 C++特殊类设计

本文介绍了C++中几种特殊类设计模式:1)通过删除拷贝构造函数和赋值运算符实现不可拷贝类;2)利用私有构造函数和静态工厂方法实现只能在堆/栈上创建的类;3)使用final关键字禁止类被继承;4)单例模式的饿汉式(提前初始化)和懒汉式(延迟初始化)实现;5)工厂模式通过静态方法封装对象创建。重点分析了各种模式的实现原理、线程安全性和使用场景,特别是通过访问控制限制对象创建方式的设计思路。

2026-07-23 21:59:55 347

原创 统信软件桌面研发

const引用(const T&):既能绑定左值,也能绑定右值(临时对象)。绑定右值时,会延长临时对象的生命周期到引用的作用域结束。常用于函数参数,避免拷贝,且接受临时值。右值引用(T&&):C++11引入,只能绑定右值(即将销毁的值)。主要用于移动语义(Move Semantics)和完美转发(Perfect Forwarding),可以“窃取”右值的资源,避免深拷贝,极大提升性能。

2026-07-23 17:36:39 285

原创 C++ 智能指针

本文介绍了C++智能指针的核心概念与分类,重点分析了auto_ptr、unique_ptr、shared_ptr和weak_ptr的特性与使用场景。智能指针通过RAII机制自动管理资源生命周期,有效防止内存泄漏。auto_ptr因所有权转移问题已被弃用;unique_ptr通过独占所有权和禁用拷贝保证安全;shared_ptr采用引用计数实现共享资源管理,但需注意循环引用问题;weak_ptr作为弱引用可打破循环引用。文章还提供了unique_ptr和shared_ptr的简化实现代码,展示了其核心逻辑。

2026-07-10 23:01:34 369

原创 大语言模型 LLM

本文介绍了大语言模型的基本概念、特点及主流应用。大语言模型是基于大规模神经网络的超级函数,通过海量参数模拟人类语言能力,采用自监督学习从无标注文本中掌握语言规律。主流模型如GPT-5.4、Claude Opus 4.7等具备百万级token处理能力,支持代码生成、逻辑推理等复杂任务。应用场景涵盖编程辅助、智能体工具调用、垂直领域专业服务及文本创作等。作为智能时代的核心基础设施,大语言模型正深刻改变信息获取与生产方式,其战略意义堪比电力与互联网,将成为国家竞争力的关键支撑。未来发展需构建安全可控的算力底座与数

2026-05-23 22:39:54 660

原创 剪映客户端面试

设计模式:是软件设计中常见问题的典型解决方案创建型:单例模式、工厂模式结构型:适配器模式行为型:策略模式单例模式:确保一个类只有一个实例,并提供一个全局访问点。应用场景配置管理器、日志对象、线程池、数据库连接池。需要全局唯一且频繁访问的对象单例模式实现方式重点考虑:线程安全、懒加载、性能、防止拷贝/赋值。HTTP协议:超文本传输协议,基于请求-响应模式,无状态,通常运行于TCP之上。用于Web浏览器和服务器之间的通信。版本演进HTTP/0.9(1991)

2026-03-13 23:23:45 268

原创 面试知识点汇总

当编写一个库,希望同时被 C 和 C++ 使用时,需要将导出函数用 extern “C” 包裹,生成 C 兼容的符号。

2026-03-05 22:36:49 286

原创 MySQL的索引

索引是一种帮助 MySQL 高效获取数据的数据结构。简单来说,索引类似于书的目录,你可以通过目录快速定位到所需内容,而不必一页页翻阅整本书。在数据库中,索引可以极大加快查询速度,但也会占用额外的存储空间,并可能降低写入(插入、更新、删除)操作的性能。

2026-03-02 22:53:27 2315

原创 哈希的认识

哈希是一种将任意数据映射为固定长度值的技术,通过哈希函数实现快速查找和数据校验。哈希表利用哈希值作为索引,由桶数组和哈希函数组成,实现高效的数据操作。常见哈希函数包括直接定址法和除留余数法。哈希冲突可通过开放定址法(线性探测、二次探测)或拉链法解决,其中拉链法将冲突元素存储在链表中,具有更高空间利用率但存在额外内存开销。负载因子是衡量哈希表填充程度的关键指标,通常需要控制在合理范围内以保证性能。

2026-02-26 22:33:25 1081

原创 map、set模拟实现

本文介绍了C++中红黑树的实现细节,包括节点结构、迭代器设计及核心操作。红黑树节点包含键值、颜色标志和三个指针(左、右、父节点)。迭代器通过重载operator++和operator--实现中序遍历,分别处理右子树存在/不存在的情况。文章还给出了红黑树的类定义,包含拷贝构造、赋值运算符和析构函数等基本操作,其中节点拷贝采用前序遍历递归实现。整体展示了红黑树作为关联式容器底层实现的关键技术要点。

2026-02-25 22:17:25 811

原创 红黑树模拟实现

红黑树是一种自平衡二叉查找树,通过颜色约束(红黑节点交替)确保近似平衡,保证操作时间复杂度为O(log n)。其性质包括:根节点为黑、无连续红节点、各路径黑节点数相同。插入操作分为三种情况处理:当父节点和叔节点为红时变色;当叔节点为黑时通过单旋或双旋调整。代码实现包括节点定义、旋转操作和插入时的颜色调整逻辑,通过向上回溯维护平衡特性。

2026-02-23 15:24:07 1440

原创 AVL树模拟实现

AVL树是一种自平衡二叉搜索树,通过平衡因子确保任意节点的左右子树高度差不超过1。当插入或删除节点导致不平衡时,通过四种旋转操作(右单旋、左单旋、左右双旋、右左双旋)重新平衡树结构。每个节点存储键值对、左右子节点指针、父节点指针和平衡因子。插入操作分为三步:定位插入位置、插入新节点、更新平衡因子并调整树结构。AVL树保证了查找、插入和删除操作的最坏时间复杂度为O(log n),适用于需要高效查找的动态数据场景。

2026-02-14 20:49:15 1214

原创 C++模板提高

本文介绍了C++模板参数分类及模板特化的相关内容。模板参数分为类型模板参数(使用typename/class声明)和非类型模板参数(必须是编译时常量)。模板特化包括函数模板特化和类模板特化两种形式:函数模板特化需要先定义基础模板,再针对特定类型进行特化实现;类模板特化分为全特化(所有参数确定化)和偏特化(部分参数特化或对参数进一步限制)。文章通过日期比较等示例展示了特化的实际应用场景,并指出函数模板通常不建议特化,而应直接重载函数。

2026-02-13 12:06:57 1262

原创 C++模板基础

本文介绍了C++中的泛型编程概念,重点讲解了函数模板和类模板的使用。函数模板通过定义通用函数框架,让编译器根据实参类型自动生成特定版本函数,解决了代码复用问题。类模板则用于创建可处理多种数据类型的通用类。文章详细说明了模板的隐式和显式实例化方法,以及模板与普通函数的匹配优先级规则。最后指出类模板实例化需要显式指定类型参数,与函数模板的自动推导有所不同。模板技术极大地提高了代码的复用性和可维护性,是C++泛型编程的核心机制。

2026-02-11 16:37:18 914

原创 Linux基础指令(二)

复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是⼀个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中如同时指定两个以上的文件或目录,且最后的目的地是⼀个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,tail 显示档案的结尾。

2026-02-03 21:32:58 1909

原创 Git原理与使用(一)

摘要 本文介绍了Git版本控制系统的基本概念与操作。Git作为主流的版本控制器,能够追踪文本文件的改动历史,帮助管理不同版本的文件。主要内容包括:Git的安装与配置、本地仓库初始化、工作区/暂存区/版本库的关系解析,以及文件添加和提交的基本命令。重点讲解了git add和git commit的使用方法,如何查看提交记录,并深入解析了.git目录结构及其作用机制。文章通过具体命令示例和示意图,帮助读者理解Git版本控制的核心工作原理。

2026-02-02 22:14:24 1453

原创 Linux基础指令(一)

Linux作为开源操作系统,拥有多种发行版本和应用场景。主流发行版包括稳定的Debian、用户友好的Ubuntu、商业化的Red Hat/CentOS,以及专为渗透测试设计的Kali Linux。在企业应用中,Linux占据服务器市场96%以上份额,同时在桌面、移动嵌入式、云计算/大数据及AI等新兴领域快速发展。文章还介绍了Linux基础指令如ls的用法及选项,展现了其在数字基础设施中的核心地位。随着开源生态的壮大,Linux将继续主导未来技术创新。

2026-02-01 16:51:10 1575

原创 网络层协议IP(三)

摘要: IP分片与组装是处理数据报超过MTU限制的机制。分片时,IP层将大数据报分割为多个小分片,每个分片携带独立IP头,包含标识符、偏移量和标志位(MF表示是否后续分片,DF禁止分片)。分片独立传输,可能乱序到达。目的主机通过三元组(源IP、目的IP、标识符)识别同一数据报的分片,按偏移量重组数据,需确保所有分片连续且无缺失。若超时未收全,则丢弃已收分片。分片增加延迟和丢包风险,现代网络通过路径MTU发现避免分片。TCP依赖重传机制处理分片丢失,UDP则直接丢弃数据。

2026-01-26 21:20:27 2197

原创 网络层协议IP(二)

本文介绍了网络通信中特殊的IP地址类型及其应用场景。主要包括:网络号(主机地址全0)、广播地址(主机地址全1)和环回地址(127.*);区分了公网IP(全球唯一)和私有IP(局域网内部使用);阐述了NAT技术在私有网络访问公网时的地址转换机制。文章还详细解析了路由过程,包括路由表结构、数据包转发规则(直接交付或间接路由),并通过实例说明了主机如何根据路由表选择发送接口。最后指出路由表可通过静态配置或动态路由算法(如Dijkstra)生成。全文系统梳理了IP寻址与路由的核心概念及实现原理。

2026-01-21 21:55:52 1363

原创 网络层与网络层协议IP(一)

网络层是互联网通信的核心,通过IP协议实现设备寻址和数据路由。IP协议采用无连接、尽力而为的传输方式,其核心任务包括寻址(唯一标识设备)和路由转发(跨越网络传输数据包)。IP地址分为网络号和主机号,通过子网掩码进行区分。传统五类IP地址划分存在局限性,CIDR技术通过无类别路由和可变长子网掩码解决了地址浪费问题。网络层关键设备路由器负责路由选择和分组转发,连接不同网络实现互联互通。辅助协议如ICMP用于网络诊断,ARP实现IP到MAC地址的解析。网络层与传输层分工明确,共同构建了全球互联网通信基础。

2026-01-19 22:20:36 1956

原创 MySQL复合查询与内外连接

本文展示了MySQL数据库中对员工表(emp)、部门表(dept)和薪资等级表(salgrade)的查询操作。主要内容包括:1) 查询工资高于500或职位为MANAGER且姓名以J开头的员工;2) 按部门号升序、工资降序排序员工信息;3) 计算员工年薪(工资×12+奖金)并按年薪降序排列。其中特别指出NULL值与任何值相加结果仍为NULL,因此计算年薪时需要使用ifnull函数处理奖金字段。这些查询示例演示了MySQL中条件筛选、排序和空值处理的基本方法。

2026-01-14 21:07:05 2642

原创 传输层协议TCP(三)

本文主要介绍了TCP协议中的滑动窗口、拥塞控制、延时应答、面向字节流特性以及粘包问题等核心机制。滑动窗口通过动态调整发送缓冲区范围实现流量控制,其丢包问题均可转化为最左侧丢失处理。拥塞控制采用慢启动、加法增大和乘法减小算法来平衡网络负载。延时应答通过适当延迟ACK响应来提升吞吐量。TCP面向字节流的特性导致应用层可能出现粘包问题,可通过定长包、包头长度字段或分隔符解决。文章还对比了UDP无粘包问题的特点,并分析了TCP连接异常终止的各种场景。这些机制共同保障了TCP协议的高效性和可靠性。

2026-01-05 11:43:32 2726

原创 传输层协议TCP(二)

深入解析TCP协议中的流量控制、标志位和连接管理机制。流量控制通过接收方缓冲区剩余空间动态调整发送速率,利用16位窗口大小实现高效传输。TCP六大标志位(ACK、SYN、FIN、RST、PSH、URG)用于区分报文类型,其中URG支持紧急数据处理。连接管理部分详细阐述了三次握手和四次挥手的全过程,分析了客户端和服务端的状态转换,并比较了close与shutdown的区别。文章特别指出四次挥手必须确保双方完成数据收发,解释了TIME_WAIT状态的作用,并警告大量CLOSE_WAIT状态可能导致的资源泄漏问题

2026-01-03 19:25:39 1354

原创 传输层协议TCP(一)

TCP协议是一种面向连接的可靠传输协议,通过三次握手建立连接、四次挥手释放连接。其核心特点包括:可靠传输(确认应答、超时重传、序列号机制)、面向字节流、全双工通信以及拥塞控制。TCP头部至少20字节,包含端口号、序列号、确认号、窗口大小等控制信息。主要机制有确认应答(ACK)、捎带应答和超时重传,其中超时时间动态调整并指数递增重传。TCP通过序列号保证数据按序到达和去重,实现端到端的可靠数据传输,同时兼顾网络性能和流量控制。

2026-01-01 18:20:44 1860 14

原创 MySQL内置函数

本文介绍了SQL中聚合函数和GROUP BY子句的使用方法。首先通过成绩表示例演示了COUNT、SUM、AVG、MAX、MIN等聚合函数的应用,包括统计学生人数、计算平均分、最高分等操作。随后展示了GROUP BY子句的用法,以雇员信息表为例,说明如何按部门分组统计平均工资和最高工资。文章通过具体SQL语句和结果展示,帮助读者理解如何利用聚合函数和分组功能进行数据统计分析。

2025-12-30 19:15:51 629 15

原创 传输层与传输层协议UDP

本文介绍了UDP协议的核心特性和应用场景。UDP是一种无连接、不可靠的传输层协议,具有低延迟、头部开销小等特点,支持全双工通信。其协议格式包含源/目的端口号、长度和检验和字段。UDP通过端口号实现多路复用与分解,适用于实时音视频、DNS查询、在线游戏等对延迟敏感的应用场景。虽然不保证数据可靠传输,但在特定场景下比TCP更具优势。

2025-12-27 20:36:33 1234 16

原创 MySQL基本查询

本文介绍了MySQL表的增删改查(CRUD)操作。重点讲解了Create操作,包括单行全列插入、多行指定列插入、冲突时更新(ON DUPLICATE KEY UPDATE)和替换(REPLACE)四种插入方式。在Retrieve部分,演示了全列查询、指定列查询和表达式查询三种数据检索方法。文章通过学生表(exam_result)的具体实例,展示了各种SQL语句的语法和使用场景,为数据库基础操作提供了实用参考。

2025-12-24 21:39:35 2036 14

原创 应用层协议HTTP

本文介绍了HTTP协议的基本概念和工作原理。HTTP是应用层协议,基于TCP,用于客户端与服务器间的通信,具有无连接、无状态的特点。详细讲解了URL的结构与编码规则、HTTP请求与响应的格式组成,包括首行、报头和正文部分。对比分析了GET和POST两种主要方法的特点与区别,GET通过URL传参,POST通过请求体传参更私密。最后列举了常见的HTTP状态码及其含义。全文系统地阐述了HTTP协议的核心要素,为理解网络通信基础提供了重要参考。

2025-12-23 18:57:51 1867 12

原创 MySQL表的约束

通过表的约束,让我们未来插入数据库表中的数据是符合预期的。约束的本质是通过技术手段,让我们插入正确的数据,目标是保证数据的完整性和可预期性。

2025-12-21 18:17:18 877 10

原创 MySQL数据类型

本文介绍了MySQL中的数据类型分类,重点讲解了数值类型的使用规范。主要内容包括:1)整型tinyint的有符号和无符号范围,强调MySQL对越界值的严格约束;2)bit类型的存储特点及其二进制表示方式;3)float类型的小数精度控制,演示了四舍五入规则和无符号限制。文章通过具体SQL示例展示了各类型的取值范围约束和存储特性,并指出float类型可能存在精度损失问题。

2025-12-20 00:30:05 735 1

原创 MySQL库的操作与表的操作

本文介绍了MySQL数据库创建的基本语法和字符集设置方法。主要内容包括:1)创建数据库的语法格式,可通过CHARACTER SET指定字符集、COLLATE指定校验规则;2)查看系统默认字符集和校验规则的方法;3)如何查看MySQL支持的所有字符集和校验规则。文章提供了多个创建数据库的示例,包括默认字符集、指定utf8mb3字符集以及同时指定字符集和校验规则的情况。这些操作对于数据库初始配置和国际化支持具有重要意义。

2025-12-18 13:24:15 1049 2

原创 MySQL数据库基础

在LInux系统下,文件就能够存储数据,为什么还需要数据库来专门存放数据呢?一般的文件确实提供了数据的存储功能,但在用户角度来看,文件并没有提供非常好的数据管理能力。如进行数据查找时需要遍历整个文件,效率低下,且存在安全问题。数据库能更有效的管理数据----提供了一套对数据内容存储管理的解决方案。

2025-12-17 21:29:28 1355 5

原创 Linux编程网络基础(四)

本文主要介绍了应用层协议中的序列化与反序列化技术及其重要性。首先解释了应用层协议的作用,即通过统一数据格式实现跨平台通信。其次,分析了TCP协议支持全双工通信的原理,包括发送/接收缓冲区的分离机制。然后对比了面向字节流和面向数据报两种传输方式的特性差异。最后以Jsoncpp为例,详细展示了JSON数据的序列化和反序列化实现方法,包括多种写入方式和解析JSON字符串的代码示例。这些内容为理解网络通信中的数据格式转换提供了实用参考。

2025-12-16 19:39:19 809 4

原创 Linux编程网络基础(三)----Socket

Socket编程摘要:本文介绍了Socket编程的基本概念,包括本地Socket和网络Socket两种类型,以及常见的Socket API。重点展示了UDP和TCP两种协议的编程实现:1) UDP实现了一个简单的回显服务器,服务器需要显式绑定端口,而客户端由系统自动分配端口;2) TCP实现中,服务器通过socket-bind-listen-accept流程建立连接,支持地址重用选项。两种实现都包含了完整的服务端和客户端代码示例,演示了基本的网络通信模式。

2025-12-15 21:25:09 905 4

原创 Linux编程网络基础(二)

本文介绍了网络通信中端口号、套接字和传输层协议的关键概念。端口号作为2字节整数,用于标识主机上的特定进程,与IP地址共同构成套接字(Socket),形成网络通信的基础。端口号分为知名端口(0-1023)和动态分配端口(1024-65535),与进程ID不同,它是网络通信的标准化标识。传输层协议(TCP和UDP)通过系统调用实现网络通信,TCP提供可靠连接,UDP则无连接且不可靠。网络字节序采用大端模式,确保不同主机间的数据兼容性,相关转换函数(如htonl)处理主机与网络字节序的转换。

2025-12-14 21:22:36 752 2

原创 Linux编程网络基础(一)

其中每一层的有效载荷是上一层传下来的数据,例如下图的传输层中,报头为传输层报头,有效载荷为应用层报头+“你好”;路由器通常有两个网卡,当主机A发现不是发给自己局域网主机的报文时,就将报文发送给路由器,由路由器传给下一个网段。TCP/IP通讯协议采⽤了5层的层级结构,每⼀层都呼叫它的下⼀层所提供的⽹络来完成⾃⼰的需求.在⽹络传输的过程中,数据不是直接发送给对⽅主机的,⽽是先要⾃顶向下将数据交付给下层协议(),最后由底层发送,然后由对⽅主机的底层来进⾏接受,在⾃底向上进⾏向上交付(在双方通信中,要进行报文的。

2025-12-13 21:37:50 1244 1

原创 C++中的多态

本文介绍了C++多态的核心概念与实现原理。多态分为编译时多态(函数重载)和运行时多态(虚函数机制)。通过基类指针/引用调用虚函数时,会根据实际对象类型决定调用哪个版本的函数,实现动态绑定。重点分析了虚函数表的工作原理:每个包含虚函数的类都有一个虚表指针,指向存储虚函数地址的虚表。派生类虚表会覆盖基类虚函数地址,实现函数重写。文章还探讨了协变、析构函数重写等特殊情况,以及final和override关键字的使用。最后通过内存布局图展示了多态的实现机制,说明虚函数调用是通过虚表间接寻址完成的。

2025-12-12 18:24:19 1306 6

原创 C++中的继承

摘要:本文介绍了C++中继承的基本概念、定义和使用方法。继承是面向对象编程的三大特征之一,允许子类在保持父类特性的基础上进行扩展。文章详细讲解了继承的三种方式(public、private、protected)及其访问规则,基类和派生类对象间的赋值转换(切片操作),以及继承中的作用域问题(成员隐藏)。此外,还阐述了派生类默认成员函数的调用规则,包括构造函数、拷贝构造函数、赋值运算符和析构函数的执行顺序。最后指出友元关系不能被继承的特性。通过代码示例帮助理解继承机制的实际应用。

2025-12-11 21:52:24 711

原创 实现一个异步操作线程池

本文介绍了使用C++11标准库实现异步操作线程池的核心技术。主要内容包括: 关键C++11异步编程组件: std::future:表示异步操作结果 std::async:简化任务与future关联 std::packaged_task:将任务和future绑定 std::promise:手动设置future值 线程池设计思路: 使用packaged_task和future组合实现 主要管理任务池、互斥锁、条件变量和工作线程 提供任务入队和停止运行等操作接口 具体实现要点: 构造函数初始化工作线程 线程入口函

2025-12-08 21:14:13 1512 1

少儿编程资料.zip

少儿编程资料.zip

2023-10-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除