自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【AI应用开发框架】大语言模型(LLM)与嵌入模型

本篇本章主要介绍了大语言模型的几种接入方式,以及认识嵌入模型,嵌入模型的应用场景以及嵌入模型和大语言模型的区别,嵌入模型的接入方式。最后介绍了两种开源的模型平台。

2026-05-11 13:07:48 840 33

原创 一文带你了解:从浏览器发起HTTP请求到得到网页的整个过程

本篇文章主要介绍了从浏览器发起HTTP请求到得到网页的整个过程

2026-05-05 18:57:50 420 7

原创 【Linux篇】NTA机制与网络地址转换原理详解

本篇文章主要介绍了NAT的主要机制

2026-05-05 16:47:52 803 16

原创 【Linux篇】网络层与数据链路层详解

本篇文章主要介绍了:网络层中的IP协议与子网划分,数据链路层的以太网帧格式,MAC地址,以及ARP协议

2026-05-04 15:24:40 873 28

原创 【Linux篇】详解TCP/UDP传输层协议:全面拆解三次握手、四次挥手及可靠性机制

本篇文章系统性梳理了TCP/UDP核心原理的技术笔记,重点介绍了TCP中的三次握手和四次挥手问题,以及TCP中保证可靠性和效率的机制。

2026-04-19 19:51:43 1468 32

原创 【项目篇】高并发服务器 - HTTP服务器组件拆解,从Util到HttpServer

本篇文章主要介绍了高并发服务器的协议模块,用于对高并发服务器的协议支持,其中包括Util工具模块,HttpRequest模块,HttpResponse模块,HttpContext上下文模块,HttpServer模块。

2026-04-18 21:36:25 401 2

原创 【项目篇】高并发服务器 - 从 Buffer 到 TcpServer 构建高并发服务器引擎

本篇文章主要介绍了高并发服务器的组成模块:Buffer模块,Socket模块,Channel模块,Poller模块,EventLoop模块,TimerWheel模块,Conncetion模块,Acceptor模块,LoopThread模块,LoopThreadPool模块,TcpServer模块的功能划分和代码实现。

2026-04-15 17:30:51 1545 29

原创 【项目篇】高并发服务器 - Reactor模型详解

本篇文章主要介绍了Reactor模型:单Reactor单线程,单Reactor多线程,多Reactor多线程,以及基于One Loop Per Thread模型的主从Reactor高并发服务器

2026-04-15 17:09:15 703 19

原创 【Linux篇】应用层协议HTTP

本篇文章主要介绍了什么是http协议,URL,HTTP的请求与应答格式,http中常见的请求方法,http中的1234开头的状态码,以及http与https的区分。

2026-04-07 12:19:32 1021 18

原创 【Linux篇】应用层自定义协议与序列化

本篇文章主要介绍了什么是序列化和反序列化,以及重新理解为什么read,write,recv,send,和tcp为什么支持全双工,以及守护进程和前台进程和后台进程之间的比较

2026-04-07 11:21:07 425 4

原创 【Linux篇】Socket编程TCP

本篇文章主要介绍了Socket编程TCP的基本步骤和流程,包括创建套接字,绑定端口号,监听,获取连接,以及读数据和发数据,connect客户端向服务器发起建立链接的请求,最后做了个简单的演示。

2026-03-14 20:23:33 460 2

原创 【Linux篇】Socket编程UDP

本篇文章主要介绍了Linux网络编程中的UDP,主要包含Socket编程UDP的基本流程,服务端流程:socket() bind() recvfrom() sendto() close()客户端流程:socket() sendto() recvfrom() close()..最后进行了UDP通信流程的拆分以及UDP的简单演示。

2026-03-05 20:48:18 881 21

原创 【Linux篇】Socket编程预备

本篇文章主要介绍了源IP和目的IP,以及端口号,传输层的典型代表UDP和TCP。之后介绍了网络字节序的大小端,以及网络中发送数据必须以大端的方式发送。最后介绍了socket编程的接口。

2026-03-05 18:28:53 411 17

原创 【Linux篇】网络基础概念

本文介绍了计算机网络的基础概念与协议分层模型。首先阐述了计算机网络的背景与发展历程,从局域网到广域网的演变过程。重点讲解了协议分层的设计思想,对比了OSI七层模型和实际应用的TCP/IP五层模型,分析了各层的功能与作用。通过结构体示例形象说明了协议的本质是通信双方约定的结构化数据类型。详细描述了网络通信流程中的封装与解包机制,以及不同层协议报文的命名规则。最后介绍了局域网传输原理、MAC地址的作用,以及IP地址在网络中的管理功能。文章旨在帮助读者理解网络通信的基本原理与协议栈的分层架构。

2026-01-31 14:54:54 725 1

原创 【Linux篇】线程互斥、同步与线程池设计:原理与实践

本文系统性地介绍了多线程编程中的三大核心机制:线程互斥、线程同步与线程池实现。首先,从互斥的相关背景概念入手,深入剖析了互斥量(mutex)的原理、实现及其封装方法,为解决资源竞态问题提供基础。其次,探讨了线程同步机制,重点讲解了条件变量、竞态条件、相关函数以及POSIX信号量的使用,确保线程间的有序协作。最后,结合实际应用,阐述了日志系统的概念,并详细设计了线程池的架构与实现,特别分析了线程安全的单例模式及其多种实现方式。

2025-12-15 18:39:37 964 30

原创 【Linux篇】线程深度解析:概念、原理与实践

本篇文章主要介绍了线程的概念包括什么是线程,分页式存储管理,线程的优缺点,线程异常以及线程的用途。对比了Linux下的进程和线程。再到线程的控制以及线程的ID以及线程的地址空间分布,最后实现了对线程的封装。

2025-12-07 22:45:58 1225 38

原创 【Linux篇】信号机制深度剖析:从信号捕捉到SIGCHLD信号处理

本文详细介绍了Linux信号捕捉的处理流程和操作系统运行机制。信号捕捉分为三种情况:忽略信号时只需清除pending位;默认信号通常终止进程;自定义捕捉会切换用户态执行handler。操作系统通过硬件中断(如时钟中断)驱动进程调度,本质上是一个死循环。CPU内部通过软中断处理错误(如除零、野指针),系统调用则通过特定指令(int/syscall)主动触发中断。文章还解释了中断控制器、中断向量表等关键概念,阐明了操作系统如何基于中断机制实现进程管理和信号处理。

2025-11-12 18:15:23 1854 62

原创 904. 水果成篮

使用滑动窗口算法优化暴力解法:维护哈希表统计窗口内水果种类及数量,右指针遍历数组时更新哈希表,当种类超过2时移动左指针收缩窗口,保证窗口合法性。最终窗口最大值即为结果。该算法高效地将时间复杂度优化至O(n),空间复杂度O(1)。核心在于哈希表动态维护窗口内元素,确保快速判断和调整。

2025-11-10 22:36:11 973 9

原创 【Linux篇】信号从哪来?到哪去?—— Linux信号的产生方式与保存机制

本篇文章主要介绍了Linux中信号产生的方式:1.键盘产生2.系统调用产生3.硬件异常产生4.软件条件产生。以及信号的保存,pending表,block表,handler表,以及信号集操作函数。

2025-11-09 22:01:00 1693 44

原创 面试题 16.25. LRU 缓存

题目要求实现一个LRU(最近最少使用)缓存机制,支持在O(1)时间内完成get和put操作。解决方案结合哈希表和双向链表:哈希表实现快速查找,双向链表维护使用顺序。get操作时若key存在,将对应节点移到链表头部;put操作时若key不存在则创建新节点并添加到头部,若超出容量则删除尾部节点。使用伪头尾节点简化操作,确保时间复杂度为O(1)。

2025-11-09 21:44:35 397 3

原创 88. 合并两个有序数组

本文介绍了合并两个有序数组的三种解法。解法一直接合并后排序,时间复杂度较高(O((m+n)log(m+n)))。解法二使用双指针方法,按顺序比较元素并存入临时数组,最后复制回nums1,时间复杂度O(m+n)。解法三优化空间复杂度,采用逆向双指针,从后往前填充nums1,无需额外空间。三种方法各有优劣,其中逆向双指针最优,既保证时间复杂度又节省空间。

2025-11-09 17:33:09 301

原创 【Linux篇】System V IPC详解:共享内存、消息队列与信号量

本篇文章主要介绍了system V版本的共享内存,消息队列,信号量,以及它们各自的接口使用。

2025-11-08 13:47:17 1221 38

原创 【Linux篇】进程间通信 - 管道,匿名管道与命名管道的全面解析

本篇文章主要介绍了进程间通信的目的以及本质,介绍了什么是管道,以及基于匿名管道实现的进程池,基于命名管道实现的server-client通信。

2025-10-30 16:26:23 1021 38

原创 【Linux篇】ELF文件与程序加载:理解链接过程中的静态库,动态库及目标文件

本篇文章主要介绍了静态库和动态库,以及ELF文件的形成与加载,以及静态链接和动态链接。

2025-10-28 16:59:24 1377 39

原创 【C++】哈希表的实现【开放定址法vs链地址法】

本文主要介绍了哈希表的概念:包括直接定址法的介绍,什么是哈希冲突,什么是负载因子,什么是哈希函数以及哈希函数的几个应用法则。之后介绍了如何处理哈希冲突,开放定址法和链地址法的介绍以及代码实现。

2025-10-21 21:44:26 1392 40

原创 【Linux篇】软链接vs硬链接:Linux文件系统中的两种引用机制

本文主要介绍了什么是软链接以及什么是硬链接

2025-10-21 21:10:52 453 17

原创 【Linux篇】- Ext系列文件系统

本篇文章主要介绍了磁盘的逻辑结构,到引入文件系统和ext2文件系统,目录名和文件名的关系,什么是路径解析,路径缓存等。

2025-09-22 17:38:39 1340 27

原创 【C++】红黑树

本篇文章介绍了什么是红黑树,以及红黑树的实现。

2025-09-21 14:54:03 1128 32

原创 【C++】AVL树

本文主要介绍了AVL树的概念以及AVL树的实现。

2025-09-13 22:24:25 965 3

原创 【C++】map和set的使用

本篇文章最主要介绍了什么是序列式容器,什么是关联式容器以及map和set的使用。

2025-05-18 20:32:14 2645 70

原创 【递归,搜索与回溯算法篇】专题(一) - 递归

本篇文章主要介绍了递归,搜索与回溯算法中的递归问题,主要包括:1.汉诺塔问题2. 合并两个有序链表3.反转链表4.两两交换链表中的节点5.Pow(x,n)

2025-05-09 18:58:53 2011 65

原创 【C++】二叉搜索树 - 从基础概念到代码实现

本篇文章主要介绍了什么是二叉搜索树,二叉搜索树的增删查,以及二叉搜索树的底层实现。

2025-04-26 19:47:18 1560 65

原创 【MySQL】005.MySQL表的约束(上)

本篇文章主要介绍了MySQL中表的约束中的 :空属性,默认值,列描述,zerofill,主键约束。

2025-04-22 18:44:56 2590 74

原创 【C++】多态 - 从虚函数到动态绑定的核心原理

本篇文章主要介绍了多态的概念以及多态的定义及实现,虚函数和抽象类,多态的原理等内容。

2025-04-20 16:06:31 2210 65

原创 【MySQL】004.MySQL数据类型

本篇文章主要介绍了MySQL中的数据类型的分类以及各种数值的类型。

2025-04-19 19:56:09 6068 49

原创 【MySQL】003. MySQL操作库

本文只要介绍了数据库中对库的操作以及对表的操作

2025-04-16 22:16:21 1065 57

原创 【C++】继承 - 从基类到派生类的代码复用逻辑

本篇文章主要介绍了继承的概念和定义,继承和派生类之间的相互转化,继承中的作用域,派生类的默认成员函数,继承与友元,继承于静态成员,多继承以及菱形继承,继承和组合的问题。

2025-04-13 13:02:36 1903 79

原创 【MySQL】002.MySQL数据库基础

本文主要介绍了什么是数据库以及数据库的基本使用,服务器,数据库,表之间的关系

2025-04-11 14:37:38 1889 49

原创 【MySQL】001.MySQL安装

本篇文章介绍了 MySQL在Ubuntu 20.04 环境下的安装方法

2025-04-10 18:52:17 1584 38

原创 【C++】stack和queue

本文主要是stack和queue以及优先级队列的介绍以及使用,还谈到了容器适配器,以及deque的简单介绍

2025-04-08 18:49:44 1919 64

空空如也

空空如也

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

TA关注的人

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