自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 计算机网络核心协议全解析:从MAC帧到HTTP

本文系统解析计算机网络核心协议,涵盖数据链路层的MAC帧结构、以太网通信机制与碰撞处理,阐明MAC地址与IP地址的分工逻辑。重点解析ARP协议实现IP到MAC地址映射,以及MTU对分片与传输效率的影响,揭示TCP/UDP在不同链路下的性能约束。通过交换机分割碰撞域提升局域网效率,全面展现从物理层到应用层的数据传递原理。

2026-10-19 11:21:14 485

原创 IP协议详解:从IP协议头到网段划分、路由与NAT

IP协议通过32位地址实现跨网络主机定位,核心功能为数据报路由传输。其头部包含版本、TTL、源/目标IP、协议类型等字段,支持分片与校验。网段划分基于网络号与主机号,传统五类地址因浪费严重被CIDR取代,后者通过子网掩码灵活划分网络,提升地址利用率。路由器在不同子网间转发数据,实现跨网通信,而DHCP自动分配IP简化管理。IP不保证可靠性,依赖上层TCP保障。

2026-10-06 14:58:43 459

原创 传输层协议深度拆解:端口寻址、UDP 报文与 TCP 可靠性机制全解析

本文深度解析传输层核心机制:端口通过五元组唯一标识通信,知名端口(0-1023)固定分配,动态端口(1024-65535)由系统分配。UDP为无连接、不可靠协议,基于数据报传输,具有定长首部与校验和,支持全双工但无缓冲区控制,单次发送与接收需匹配。TCP则提供可靠传输,通过三次握手建立连接,利用序号、确认应答、重传机制保障数据有序可靠送达,其首部包含窗口大小、标志位等关键字段,内核通过端口号映射套接字实现进程间通信。

2026-10-04 01:42:50 626

原创 HTTPS 加密原理与 CA 数字证书:从对称加密到完整通信流程

HTTPS在HTTP基础上引入加密层,通过非对称加密协商对称密钥,结合CA数字证书验证身份,防止中间人攻击。客户端校验服务器证书的合法性,确保公钥真实可信,再通过安全通道交换会话密钥,后续通信使用高效对称加密。该机制保障了数据机密性、完整性与身份真实性,构建了安全可靠的网络通信体系。

2026-10-04 01:14:39 430

原创 HTTP协议详解:从URL到HTTP服务器的完整实战

本文详解HTTP协议,从URL结构、urlencode/decode机制,到请求响应格式、方法与状态码,系统阐述HTTP应用层通信原理。结合TCP/IP模型,解析请求报头解析、Content-Length作用及序列化实现,并通过简单服务器实例演示“Hello World”响应的构建过程,全面展示HTTP协议的核心机制与实战应用。

2026-10-04 01:12:09 397

原创 Linux网络编程从入门到实战:UDP/TCP协议与socket编程全解析

独立模式:计算机之间相互独立,每个终端各自持有客户数据。网络互联:多台计算机连接在一起,完成数据共享。局域网LAN:计算机数量更多了,通过交换机和路由器连接在一起。广域网WAN:将远隔千里的计算机都连在一起。所谓“局域网”和“广域网”只是一个相对的概念。比如我们有“天朝特色”的广域网,也可以看做一个比较大的局域网。计算机之间的传输媒介是光信号和电信号。通过“频率”和“强弱”来表示0和1这样的信息。要想传递各种不同的信息,就需要约定好双方的数据格式。计算机生产厂商有很多;计算机操作系统也有很多;计算机网络硬件

2026-10-04 00:59:57 231

原创 Linux 多线程编程从入门到进阶:线程概念、互斥同步与线程池实战

本文系统阐述了Linux多线程编程的核心概念:进程地址空间通过页表实现虚拟内存管理,线程本质是共享资源的轻量级进程(LWP),由task_struct统一调度。线程共享进程的地址空间、文件描述符等资源,但拥有独立栈、寄存器等私有数据。相比进程,线程创建与切换开销更小,适合提升并发性能。文章还介绍了POSIX线程库(pthread)的使用及编译要求,并对比了进程与线程在资源分配、调度、切换等方面的差异,强调“进程是资源分配单位,线程是调度单位”的核心理念。

2026-10-04 00:41:07 351

原创 Linux 进程间通信与信号:从管道到信号捕捉的完整实战

本文系统讲解Linux进程间通信中的管道机制,涵盖匿名管道与命名管道的原理、pipe()函数使用、父子进程共享管道的实现方式,以及基于管道的双向通信和shell管道功能的实战应用。重点剖析了管道在内核中的实现机制、读写规则、原子性保障及信号处理,并通过代码示例展示了管道在minishell和进程池中的实际运用,全面诠释了“一切皆文件”的核心思想。

2026-09-29 14:52:01 243

原创 RAG实战-从 NoSQL 到 Milvus 混合检索的架构演进

NoSQL数据库(如MongoDB)以灵活数据模型应对大规模、高并发与非结构化数据挑战。其四大类型——键值、文档、列式与图数据库——各适配不同场景。相比传统MySQL,MongoDB采用动态Schema、支持水平扩展,基于BSON存储并自动创建库集合。通过索引优化查询性能,使用$操作符实现复杂条件匹配。代码实践展示其CRUD操作:自动创建、唯一索引、局部更新及高效检索,适用于RAG等现代应用。

2026-09-28 11:01:05 196

原创 RAG实战-Embedding模型(BGE)

本文系统解析RAG中Embedding模型的核心作用,聚焦BGE系列模型实战应用。从两阶段检索架构(召回+精排)出发,详解Bi-Encoder与Cross-Encoder原理,揭示非对称任务下指令驱动的向量对齐机制。重点剖析BGE v1.5指令设计、单权重双角色实现及MTEB评测体系,提供可落地的工程规范与避坑指南,助力构建高效精准的生产级RAG系统。

2026-09-28 10:59:29 299

原创 RAG实战 - 向量数据库(Milvus)

Milvus 是一款专为大规模向量存储与检索设计的开源数据库,支持万亿级向量索引。其数据模型层次清晰,涵盖库、集合、分区与实体,适用于非结构化数据(如文本、图像)的嵌入向量管理。通过欧氏距离、内积等相似度度量,结合 IVF_FLAT、HNSW 等 ANN 索引实现毫秒级近似最近邻搜索。支持标量过滤、混合检索与分块召回机制,广泛应用于 RAG 场景,结合外部存储(如 MySQL)实现高效上下文检索,兼顾精度与性能。

2026-09-28 10:55:32 313

原创 RAG实战-LangChain

LangChain 是开源框架,用于简化大语言模型(LLM)在应用中的集成。它通过统一API、提示管理、链式编排(Chains)、记忆机制与RAG(检索增强生成)等模块,支持多模型接入与复杂AI流程构建。核心组件包括Models、Prompts、Chains、Memory、Indexes和Agents,结合LCEL实现灵活工作流编排。适用于问答系统、智能代理、自动化研究等场景,已发展为涵盖Python/JS的完整生态体系,助力企业级AI应用开发。

2026-09-28 10:52:59 512

原创 Linux 文件系统与 IO 深度剖析:从系统调用到动静态库

本文深入剖析Linux文件系统与IO机制,揭示文件操作本质为进程与文件的关联。通过系统调用(如open、write、read、lseek)实现对文件的底层访问,强调文件描述符(fd)是进程管理打开文件的核心索引。基于files_struct数组的分配规则,解释了fd从3开始的原因及最小可用分配策略。结合C语言标准I/O与系统调用的关系,阐明文件操作的统一性与效率优化,为理解程序与文件交互提供坚实基础。

2026-09-26 16:14:04 187

原创 MySQL 用户管理全攻略:从创建、删除到权限控制

MySQL 的用户管理也是按照表结构进行管理的,因为 MySQL 需要记录哪些用户有什么权限。在安装 MySQL 时,即使没有创建数据库,默认情况下仍然会有系统自带的数据库。其中一个叫做mysql的数据库,里面有一张user表,这张表就是用来管理用户的。userUser:表示用户名,即谁在登录 MySQL。Host:表示允许该用户在哪些机器上登录 MySQL。:存储加密后的密码。其他字段:各种权限信息。因此,在 MySQL 下新建一个用户,实际上就是在这张表里面填写UserHost。

2026-09-23 16:38:40 291

原创 Linux 进程详解:从冯诺依曼体系到进程控制

本文详解Linux进程机制,从冯诺依曼体系出发,阐述CPU、内存与外设的数据交互原理,引出操作系统作为资源管理者的核心作用。重点解析进程概念:进程是程序的执行实例,由内核数据结构task_struct(PCB)描述,包含进程标识、状态、优先级、上下文等信息。通过系统调用如fork创建子进程,实现执行流分裂,父子进程共享代码但数据私有(写时拷贝)。进程状态包括运行(R)、可中断睡眠(S)、不可中断睡眠(D)等,状态管理由内核维护。最终,进程管理本质是对PCB数据结构的描述与组织,体现了操作系统对软硬件资源的高

2026-09-19 16:51:20 249

原创 C++ 继承和多态 设计模式

/ 学号int _major;// 专业class 派生类 : 继承方式 基类 {// ... };Student:派生类public:继承方式Person:基类概念作用域条件重载同一作用域函数名相同,参数不同重写/覆盖基类和派生类作用域函数名、参数、返回值相同(协变例外),且必须是虚函数重定义/隐藏基类和派生类作用域函数名相同,不构成重写就是隐藏。

2026-09-19 16:28:02 197

原创 Linux 基础及基础工具使用

本文系统梳理Linux基础环境与常用工具使用,涵盖文件概念、路径结构、管道机制及权限管理。重点讲解文件属性(读/写/执行)、用户角色(拥有者、组、其他)、umask掩码对默认权限的影响,以及目录权限与粘滞位的应用。同时介绍ls、grep、sort、wc等常用命令,强调|管道实现指令批量化处理,并说明yum包管理器在软件安装中的作用,为Linux开发提供实用基础支持。

2026-09-09 23:14:50 220

原创 MYSQL 事务原理及使用

本文介绍MySQL事务原理,包括事务为解决高并发下数据一致性问题而设计,是一组逻辑相关的DML操作,具备原子性、一致性、隔离性、持久性。MySQL中仅InnoDB引擎支持事务,可通过autocommit设置提交方式,并演示了事务开始、回滚等操作。本文介绍MySQL事务原理,阐述事务为解决高并发下数据一致性问题而设计,是一组逻辑相关的DML操作,具备原子性、一致性、隔离性、持久性。MySQL中仅InnoDB引擎支持事务,可通过autocommit设置提交方式,并演示了事务开始、保存点及回滚操作。

2026-09-06 17:54:45 285

原创 MYSQL索引使用及原理

但是天下没有免费的午餐,查询速度的提高是以插入、更新、删除的速度为代价的,这些写操作增加了大量的 IO。在单表数据不断被插入的情况下,MySQL 会在容量不足的时候自动开辟新的 Page 来保存新的数据,然后通过指针的方式将所有的 Page 组织起来(因为是链表)。在 InnoDB 存储引擎中,主键索引(聚簇索引)的叶子节点直接挂载完整数据行,而普通索引(二级索引)的叶子节点仅存储索引列值及对应的主键值,因此通过普通索引查询非索引字段时必须回表到主键索引树获取完整数据,形成额外的磁盘 I/O 开销;

2026-09-06 17:43:51 333

原创 MySQL 复合查询与多表关联实战:从笛卡儿积到自连接

本文介绍了MySQL多表查询的基本概念和方法。主要内容包括: 三张基础表结构:员工表(EMP)、部门表(DEPT)和工资等级表(SALGRADE); 单表查询基础回顾; 多表查询原理:通过笛卡尔积组合表数据,利用WHERE筛选有效数据; 自连接方法:同一张表进行连接查询; 子查询技巧:单行子查询(返回单结果)和多行子查询(使用IN、ALL、ANY等关键字)。 文章通过实例演示了如何在不同表之间建立关联关系,获取跨表数据,涵盖了企业管理系统中的常见查询需求。

2026-07-25 16:31:15 201

原创 MySQL 内置函数

摘要:本文介绍了SQL中常用的日期、字符串和数学函数。日期函数部分包括获取当前日期时间(current_date/time/timestamp)、日期加减(date_add/sub)和日期差(datediff)等操作;字符串函数涵盖字符集获取、连接(concat)、长度计算(length)、替换(replace)和大小写转换等;数学函数包含绝对值(abs)、取整(ceil/floor)、格式化(format)和随机数(rand)等。文中提供了各函数的具体使用示例,并指出字符串函数不会修改原表数据,只是对查询

2026-07-20 20:59:13 227

原创 MySQL 基本查询

语法:说明:单行插入时,INTO 可以省略。表名后面带括号(里面是列名)表示指定列插入,不带括号就是全列插入(每一列挨着插入)。带括号就可以指定某些列插入,后面 VALUES 里对应的值要一一对应。如果没有带括号,就要按照表定义时列的顺序挨着写。全列插入必须每个列都赋值,即使该列有默认值或自增约束。多行插入就是把单行插入的 value_list 用逗号连接,例如:其他规则和单行插入一样。案例:创建学生表1.1 单行数据 + 全列插入value_list 数量必须和定义表的列数量及顺序一致。插入时也可

2026-07-19 20:27:08 217

原创 MySQL 表的约束

本文介绍了MySQL中常用的表约束类型及其作用。主要约束包括:非空约束(NOT NULL)确保字段不为空;默认值(DEFAULT)在未显式赋值时生效;列描述(COMMENT)用于字段说明;ZEROFILL属性实现数字左补零显示;主键(PRIMARY KEY)保证记录唯一性,支持单列和复合主键。这些约束条件共同确保数据合法性、完整性和业务逻辑正确性,是数据库设计的重要部分。通过示例代码演示了各种约束的具体用法和效果。

2026-07-18 23:56:28 464

原创 MySQL 数据类型详解

MySQL 数据类型详解 摘要: 本文系统介绍了MySQL常用的数据类型,包括数值类型、字符串类型、时间日期类型等核心分类。数值类型重点讲解了整型(TINYINT/SMALLINT/INT/BIGINT)的范围和存储特性,以及FLOAT、DOUBLE、DECIMAL三种小数类型的精度差异。字符串类型详细说明了CHAR定长和VARCHAR变长的特性区别,以及TEXT/BLOB大对象类型的应用场景。文章通过实际SQL示例演示了各种数据类型的边界限制和越界处理机制,并提供了类型选择建议:如高精度计算推荐DECIM

2026-07-18 23:42:30 410

原创 MySQL 表结构操作

因为数据库在项目中是非常底层的依赖,容易牵一发而动全身,修改一个字段,很多上层的业务逻辑、代码、SQL 语句可能都要跟着变动。执行后再用 show create table 表名 \G 查看,会发现建表语句已经更新为最新的定义,原有的定义被直接覆盖。底层原理:修改表名在 Linux 系统底层等价于 move 系统调用(和 mv 命令效果类似),磁盘上对应的表文件名也会跟着修改,因此执行速度很快。修改表操作修改的是表的列属性、表结构定义,不是对表里面的数据进行操作,属于数据定义语言(DDL)范畴。

2026-07-16 23:19:49 587

原创 MySQL 数据库基础操作知识点整理

由于数据库本质是磁盘目录,也可以直接拷贝数据库目录到目标路径完成备份 / 恢复,属于物理层面的备份。创建好的数据库会在 MySQL 配置文件指定的数据目录下新建同名目录文件,一个数据库对应 Linux 下的一个目录文件,默认路径为。文件,用于记录该数据库的字符集和校验规则配置。数据库内的数据表会默认继承数据库的字符集和校验规则,无需重复设置。注意:这个备份不止备份了数据库里面的数据,还备份了我们以往对该数据库的有效操作,一起备份形成了一个。注意:不是创建数据库,而是展示创建数据库时候的命令。

2026-07-15 23:55:10 337

原创 MYSQL基础

本文系统介绍了MySQL数据库的基础知识,主要内容包括: 数据库基本概念:对比文件存储的不足,阐述数据库在安全性、查询效率、海量数据管理和程序控制方面的优势;说明数据库的本质是数据存储与管理解决方案,由数据库服务统一管理底层文件。 主流数据库对比:列表分析SQL Server、Oracle、MySQL、PostgreSQL等6种数据库的背景、开发商及适用场景,重点说明MySQL的高并发性能和广泛应用领域。 MySQL安装指南:详细讲解CentOS 7通过yum安装MariaDB(MySQL兼容分支)的步骤,

2026-07-15 20:53:33 360

原创 RAG 技术基础与核心架构

文章摘要: RAG(检索增强生成)技术通过外接动态知识库解决大模型的知识时效、幻觉、数据安全与答案溯源问题。其架构分为离线知识库构建(文档解析、分块、向量化存储)和在线问答(查询处理、混合召回、重排生成)两阶段。核心组件包括嵌入模型(如BGE-M3)、分层存储引擎(Milvus向量库+MongoDB文档库)和混合检索引擎。BGE模型通过指令前缀区分文档/查询编码,支持稠密与稀疏向量输出,优化语义匹配。双库分离设计(向量库存向量+元数据,文档库存原文)提升性能与可维护性,通过全局唯一ID关联数据,确保检索效率

2026-06-23 15:48:55 337

原创 C++ 内存管理

free(p1);delete p4;调用 operator new 函数完成内存空间申请。在申请到的内存空间上执行构造函数,完成对象初始化。内存泄漏的定义:内存泄漏是指因程序设计疏忽或错误,导致已分配且不再使用的内存未能被释放的情况。内存泄漏并非物理内存消失,而是程序失去对该段内存的控制权,造成内存资源的浪费。

2026-03-16 15:59:03 523

原创 c++类和对象(下)

本文介绍了C++类和对象中构造函数的进阶内容。首先区分了构造函数体赋值与初始化列表的本质差异,指出初始化列表才是成员变量真正的初始化位置。详细讲解了初始化列表的使用规范,包括只能出现一次、特殊成员必须使用初始化列表等注意事项,并强调成员变量初始化顺序取决于声明顺序而非初始化列表书写顺序。最后重点分析了explicit关键字的作用,通过单参和多参构造函数的示例,说明其如何禁止隐式类型转换,提高代码可读性和安全性。文章通过代码示例和理论分析相结合的方式,深入解析了C++对象初始化的核心机制。

2026-02-01 17:07:14 697

原创 C++ 类和对象(六大成员函数)

无参的构造函数、全缺省的构造函数都称为默认构造函数;此外,用户未显式定义任何构造函数时,编译器自动生成的无参构造函数,也属于默认构造函数。核心规则:一个类中默认构造函数只能有一个,若同时存在多个可无参调用的构造函数,会导致调用歧义,编译失败。class Datepublic:// 无参构造函数:无参数传入 属于默认构造函数Date()_month = 1;_day = 1;int _month;int _day;Date d1;

2025-12-12 22:50:53 1059 1

原创 c++ 类和对象(上)

维度面向过程(C)面向对象(C++)核心单元函数对象(数据 + 方法)数据与方法关系分离,函数需显式传数据指针封装,方法属于对象内部关注点步骤流程(怎么做)实体交互(谁来做)适用场景小型项目、底层开发(如驱动) 中大型项目、复杂系统(如 APP)C++ 兼容 C 语言的struct,但允许在struct// C++的struct:可定义数据和函数// 方法1:初始化栈(无需显式传指针,this指针隐式传递)

2025-09-02 14:45:13 1483

原创 数据结构 二叉树

核心目标:通过手动构建简单二叉树的示例,快速进入二叉树操作学习阶段,后续再深入研究动态创建逻辑。关键代码解析: 结构体:用 存值, 指针维护二叉树的递归结构。递归定义体现:二叉树 = 根节点 + 左子树(二叉树) + 右子树(二叉树),为空则指针为 NULL。手动创建二叉树示例:构建的二叉树结构(简化示意):注意:这是硬编码式创建,仅用于快速学习操作;真实场景需动态构建(如从数组、字符串、文件解析 ),后续会详细讲解。二叉树的递归定义回顾:二叉树是以下两种情况之一:该定义是后续实

2025-09-02 13:28:55 980

原创 数据结构 二叉树 二叉树链式结构的实现

核心目标:通过手动构建简单二叉树的示例,快速进入二叉树操作学习阶段,后续再深入研究动态创建逻辑。关键代码解析: 结构体:用 存值, 指针维护二叉树的递归结构。递归定义体现:二叉树 = 根节点 + 左子树(二叉树) + 右子树(二叉树),为空则指针为 NULL。手动创建二叉树示例:构建的二叉树结构(简化示意):注意:这是硬编码式创建,仅用于快速学习操作;真实场景需动态构建(如从数组、字符串、文件解析 ),后续会详细讲解。二叉树的递归定义回顾:二叉树是以下两种情况之一:该定义是后续实

2025-08-20 17:01:17 792

原创 数据结构 二叉树(2)堆

核心逻辑堆是完全二叉树的顺序存储优化,需同时满足“完全二叉树结构”和“父子节点值的约束关系”。数学描述(以数组下标i对应完全二叉树节点为例 ):对于小根堆(最小堆):任意节点k[i]需满足k [i] ≤ k [2i+1](左孩子) 且 k [i] ≤ k [2i+2](右孩子)即父节点值 ≤ 左右子节点值,根节点是整个堆的最小值。对于大根堆(最大堆):任意节点k[i]需满足k [i] ≥ k [2i+1](左孩子) 且 k [i] ≥ k [2i+2](右孩子)即父节点值 ≥ 左右子节点值。

2025-08-12 18:21:10 1220

原创 数据结构 二叉树(1)二叉树简单了解

树的定义:根结点特性:子树规则:节点的度:叶节点(终端节点):非终端节点(分支节点):双亲节点(父节点):孩子节点(子节点):树的度:节点的层次:树的高度(深度):森林:树结构相对线性表就比较复杂了,要存储表示起来就比较麻烦了,既然保存值域,也要保存结点和结点之间的关系,实际中树有很多种表示方式如:双亲表示法,孩子表示法、孩子双亲表示法以及孩子兄弟表示法等。我们这里就简单的了解其中最常用的孩子兄弟表示法。双亲表示法:核心思路:用数组存储树中节点,每个节点额外记录其“父节点在数组中的下标”,通过父节点索引维护

2025-08-06 22:19:21 1359

原创 数据结构 栈和队列

我的栈初始化是给了初始大小的如果你不想给初始大小也可以那么在后面入栈的实现时加一个判断后面会讲。因为我们使用数组实现比较优一点所以会详细讲解使用数组来实现栈而使用链表来实现栈只会给代码。如果你没有给初始大小那么在后面push的时候加一个判断。是否等于0如果等于0给一个初始值不然在。会导致capacity还是0。

2025-08-02 17:54:39 747

原创 c语言进阶 文件操作

文件是存储在外部存储设备上的数据流,按用途可分为程序文件和数据文件。文件名是唯一标识一个文件的字符串路径 + 文件名主干 + 后缀。各部分含义:路径:表示文件在存储设备中的位置(如D:\data\文件名主干:文件的核心名称(如test后缀:标识文件类型(如.txt表示文本文件,.dat表示数据文件)。示例::绝对路径,完整标识了文件位置。:相对路径(相对于当前程序运行目录)。路径中的转义字符:在C语言字符串中,需用\\表示(转义),如。

2025-07-23 20:21:46 1155

原创 c语言 进阶 动态内存管理

malloc函数函数原型的作用是向内存的堆区申请一块连续可用的空间。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。返回值的类型是void*,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。表示要分配的内存块的大小(以字节为单位)。

2025-07-21 22:47:13 1252

原创 c语言进阶 自定义类型 枚举,联合

枚举1. 枚举类型的定义​2. 枚举的优点2. 枚举的优点3. 枚举的使用枚举的实际应用场景​枚举的实际应用场景联合1. 联合类型的声明、定义与大小计算2. 联合的特点3. 联合大小的计算规则联合的实际应用场景联合的实际应用场景枚举与联合的区别枚举是一种用于定义命名常量集合的自定义类型,使用enum关键字声明。它将一组具有逻辑关联的离散值整合在一起,每个值都有一个有意义的名称。​示例:​// 定义表示星期的枚举类型enum Day​enum Day​{​。

2025-07-21 21:04:07 1319

空空如也

空空如也

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

TA关注的人

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