- 博客(68)
- 收藏
- 关注
原创 锁一篇搞定:乐观锁、悲观锁、CAS、数据库锁与分布式锁【从零开始的 Web 后端学习】
本文从“并发修改同一数据”问题切入,系统梳理乐观锁、悲观锁、CAS、数据库锁与分布式锁的核心概念与应用场景。通过库存扣减等实例,阐明锁的本质是协调共享资源访问,避免竞态条件。文章厘清五类锁的运行边界:线程锁(如synchronized)保护JVM内资源,数据库锁(如FOR UPDATE)由事务管理,分布式锁(如Redis SET NX)跨多实例协同;并对比乐观/悲观策略、CAS与互斥锁的适用场景。最终强调:锁的选择需匹配资源范围与冲突频率,合理组合才能保障高并发下的数据一致性。
2026-11-07 12:22:57
308
原创 WebSocket一篇搞定【从零开始的Web后端学习】
本文从零开始讲解WebSocket,通过一个聊天室实例,清晰对比短轮询、SSE与WebSocket的差异,阐明其全双工通信优势。重点解析握手过程(HTTP升级为WebSocket)、连接管理、广播与点对点通信机制,并强调:WebSocket仅提供双向通道,业务逻辑如鉴权、消息格式需自行设计。结合Spring Boot实现原生Handler,手把手完成从连接建立到消息收发的全流程,帮助零基础开发者真正“会用”WebSocket。
2026-11-05 18:24:38
232
原创 【从零开始的Web后端实战】苍穹外卖项目一篇搞定(下):公共字段填充、多表事务与报表导出
本文聚焦“苍穹外卖”后台管理链路,解析菜品增删、公共字段填充、事务控制、缓存清理、数据统计与导出等核心问题。通过@AutoFill注解实现创建/修改时间与操作人自动注入,利用事务保障主从表一致性,结合@CacheEvict清除缓存,按天聚合营业额数据并以逗号分隔字符串返回前端绘图,最终使用POI模板生成Excel报表并流式输出。全链路体现“注解驱动、事务兜底、缓存同步、数据可视化”的工程化设计思想。
2026-11-02 17:13:39
458
原创 【从零开始的Web后端实战】苍穹外卖项目一篇搞定(上):从双端鉴权到下单支付全链路
本文详解苍穹外卖项目从双端鉴权到下单支付的全链路设计:通过 /admin 与 /user 分离接口,JWT 区分管理员与用户身份,结合 ThreadLocal 实现上下文传递;订单提交触发事务写入 MySQL,Redis 缓存菜品数据并自动失效;支付成功后通过 WebSocket 实时推送来单提醒,定时任务处理超时取消,完整实现“双端协同、状态闭环”的外卖业务流程。
2026-11-02 01:26:36
269
原创 【从零开始的 Web 后端学习】Tlias 项目一篇搞定(下):把鉴权、事务、AOP 接上去
下篇补全Tlias项目“身份”与“横切逻辑”:通过TokenFilter与TokenInterceptor协同实现鉴权,将用户ID存入ThreadLocal贯穿请求链;使用@Transactional确保业务操作的原子性;借助AOP在方法前后自动记录日志。三者均依赖“时机”控制——鉴权在入口、事务定边界、切面嵌横切,解决登录刷新失效、操作人错乱、数据不一致等问题,最终实现安全、可靠、可追溯的完整流水线。
2026-09-22 15:47:53
109
原创 【从零开始的 Web 后端学习】Tlias 项目一篇搞定(上)
本文以“Tlias智能学习辅助系统”为实战项目,拆解从零搭建完整Spring Boot后端的全流程。聚焦上篇核心:分层约定、统一返回、统一异常、分页与动态SQL,通过“流水线”思维理清请求流转链路——从前端到数据库,每站只做一件事,数据仅在相邻层传递。解决“会写单点功能却无法串联”的痛点,奠定可扩展、易维护的项目骨架,代码可直接复用,建议收藏跟练。
2026-09-22 15:44:27
346
原创 Ajax + Vue 一篇搞定【从零开始的 JavaScript 学习】:axios 发请求、Vue 五大指令、mounted 钩子与前后端联调(附可直接运行的 Tlias 员工管理页)
本文聚焦于前端数据获取的核心突破——让页面数据真正从服务器加载。通过剖析五个典型陷阱(如表格翻倍、表单不同步、res.data层级问题等),揭示本质是混淆了**Ajax(请求)、axios(工具)、JSON(格式)、Vue(渲染)**四者职责。文章以数据流动为主线,强调“先认识信封(JSON)→ 再寄信(Ajax+axios)→ 收信后画图(Vue)”,最终实现页面自动渲染。核心在于:数据一变,Vue 自动重画,无需手动操作 DOM。
2026-09-19 11:50:29
319
原创 【从零开始的 JavaScript 学习】JS 事件监听一篇搞定:addEventListener、9 种常用事件与 this 指向(附可直接运行的 Tlias 员工管理页)
本文详解如何让静态网页“活起来”,聚焦事件监听三大核心:找元素、绑事件、回调中的 this。通过分析常见错误(如 querySelectorAll 不能直接加事件、this 为 undefined),揭示浏览器事件机制的本质——先选中元素,再注册回调,最后在用户操作时执行。强调 addEventListener 是“注册”而非“执行”,且回调中 this 指向触发元素(除非使用箭头函数)。附完整可运行的 HTML 示例,帮助读者从零掌握 DOM 操作与事件响应逻辑。
2026-09-18 20:27:11
197
原创 【从零开始的 JavaScript 学习】JavaScript 基础语法一篇搞定:变量、类型转换、运算符、控制流(Node 直接能跑)
本文为「从零开始的 JavaScript 学习」系列首篇,聚焦语言基础语法:通过输入、变量声明、数据类型、类型转换、运算符、控制流与异常处理,构建完整的代码执行流水线。强调 JS 的弱类型特性及“值”的三重维度——声明、类型、转换,剖析常见陷阱(如 + 号拼接、== 与 === 差异),并以 Node 环境可运行代码实证核心概念。建议掌握模板字符串、console.log() 与 process.stdout.write() 的区别,打好基础再深入 DOM 操作与前端开发。
2026-09-18 00:50:26
342
原创 【从零开始的 Web 后端学习】AOP 一篇搞定(操作日志实战 + ThreadLocal,代码可直接抄)
AOP(面向切面编程)是Spring两大核心之一,旨在不修改原有代码的前提下,将重复逻辑(如日志、耗时统计、事务管理)统一抽取并动态织入目标方法。通过连接点、切入点、通知、切面、目标对象五个概念,实现代码无侵入式增强。Spring AOP基于动态代理(JDK或CGLIB),在运行时生成代理对象,在方法前后自动插入额外逻辑。例如,只需定义一个切面,即可为所有业务方法自动添加耗时统计功能,大幅提升代码可维护性与可读性。
2026-09-18 00:11:07
140
原创 【从零开始的 Web 前端学习】HTML + CSS 一篇搞定:从第一个标签到 Tlias 员工管理页面(代码可直接抄)
本文从零讲解HTML+CSS基础,厘清结构、表现、布局三层次概念。通过手搓“员工管理页面”案例,详解HTML骨架搭建(<head>/<body>/常用标签)与CSS盒模型、Flex布局原理,解决“宽高不符”“布局混乱”等常见困惑。代码可直接复制使用,适合前端新手快速上手,为后续Vue等框架学习打下坚实基础。
2026-09-17 23:34:25
174
原创 【从零开始的 Web 后端学习】过滤器与拦截器一篇搞定(登录校验必用,代码可直接抄)
本文深入解析JWT认证中**过滤器(Filter)与拦截器(Interceptor)**的本质区别与应用场景。指出Filter由Tomcat管理,位于请求最外层,可拦截所有资源,但无法注入Spring Bean;Interceptor由Spring管理,仅拦截Controller请求,支持依赖注入且能获取业务上下文。通过执行顺序图(Filter→Interceptor→Controller→反向回调)清晰展示两者协作链路,并解决常见问题:如chain.doFilter()不写导致阻塞、Filter顺序混乱、
2026-09-11 21:36:42
114
原创 【从零开始的 Web 后端学习】令牌技术一篇搞定(JWT 登录认证保姆级)
<think>好的,用户要求根据提供的技术文档内容生成一篇不超过150字的摘要。 内容核心是讲令牌技术,重点包括:HTTP无状态导致的问题,Cookie和Session的缺点(移动端不支持、跨域限制、集群失效),从而引出令牌方案的必要性。 摘要需要概括技术要点,语言简洁,突出痛点:未登录可直达后台、HTTP无状态、Cookie和Session的局限性、令牌技术是解决方案。要控制在150字以内。 先把握核心逻辑:背景问题(无登录拦截)→ HTTP无状态原因 → Cookie/Session的坑(为什么不行)→
2026-09-08 21:19:06
273
原创 【从零开始的 Web 后端学习】Stream 流一篇搞定(Lambda + 集合流水线保姆级教程)
<think>我们根据要求生成摘要。内容是关于Java 8 Stream流的文章,主要讲Stream是什么、创建方式、中间操作(filter、limit/skip、distinct、sorted、map、flatMap)等。摘要需≤150字。要概括核心:解决Service层for循环冗长问题,引入Stream流的声明式流水线操作,介绍创建流和中间操作要点。用简洁中文。</think>摘要:本文针对Service层大量for循环的痛点,引入Java 8 Stream流解决方案。详细讲解Stream创建方式(集
2026-09-01 15:31:32
205
原创 【从零开始的 Web 后端学习】文件上传一篇搞定(MultipartFile + 本地存储 + 阿里云 OSS 保姆级教程)
一句话定义(加粗版):文件上传,就是将本地图片、视频、音频等文件上传到服务器,供其他用户浏览或下载的过程。比如在新增员工时,点加号 / 点图片,选择电脑或手机本地的一张图片,选完之后这张图就会被传送到服务器,完成上传。┌──────────┐ multipart/form-data ┌─────────────┐ 存储 ┌──────────┐│ 前端页面 │ ───────────────────────▶ │ 后端服务器 │ ────────▶ │ 存储介质 │。
2026-08-29 18:53:14
269
原创 【从零开始的 Web 后端学习】Spring 事务管理一篇搞定(@Transactional 保姆级教程)
一句话定义(加粗版):事务是一组操作的集合,它是一个不可分割的工作单位。这组操作要么同时成功,要么同时失败。事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求。要么全部生效,要么全部不生效,不存在"做一半"的状态。新增员工业务│▼│ 操作① 保存员工基本信息 │ ──▶ emp 表 insert│▼│ 操作② 保存员工工作经历 │ ──▶ emp_expr 表 insert这两个操作是一个不可分割的工作单位✅ 两个都成功 → 一起提交。
2026-08-29 18:22:58
435
原创 Claude Code 一篇搞定(安装 + 国产模型 + MCP)—— 从零开始的 AI Agent 学习
这是「从零开始的 AI Agent 学习」系列的第一篇。最近 Claude Code 火得不行,但很多人卡在第一步:地区报错、不会接国产模型、MCP 是啥完全懵。这一篇把从安装到让它控制浏览器的全流程拆开讲,命令全都能直接抄 ✅。
2026-08-27 21:11:49
207
原创 MyBatis 动态 SQL —— 从零开始的 Web 后端学习
动态 SQL:指 SQL 语句的内容随着用户的输入或外部条件的变化而动态拼接生成的 SQL。你在 XML 里写「判断逻辑」,MyBatis 在运行时根据参数决定拼不拼、拼什么。你写的 XML(带 <if> <where> 等标签)│▼MyBatis 解析标签 + 读取参数││ 条件为真 → 拼这段 SQL ││ 条件为假 → 跳过这段 SQL │▼最终拼好的「完整 SQL」│▼交给 JDBC 执行下面咱们把常用的 7 个标签挨个拆开讲,每个都配能跑的代码。动态 SQL 就是「
2026-08-25 15:42:22
252
原创 MySQL 多表查询一篇搞定(连接查询 + 子查询)—— 从零开始的 Web 后端学习
ok,咱们先想一个问题:员工列表页要显示"姓名 + 部门名称",但数据库里是这样的——emp 员工表: id | name | salary | dept_id ← 只存了部门ID,没有部门名dept 部门表: id | name ← 部门名在这里只是个数字,前端要显示"教研部",就得拿这个dept_id去dept表里查出name。这就是多表查询:从多张表中获取所需数据。但在学查询之前,得先搞懂表与表之间是怎么关联的——不然连"按什么条件把两张表拼起来"都不知道。咱们先看三种多表关系。ok,到这儿。
2026-08-23 16:45:06
586
原创 日志技术 Logback + Slf4j —— 从零开始的 Web 后端学习
ok,咱们先想一个问题:你在 Controller 里这样"打印日志",上线后会怎么样?System.out.println("根据 id 删除部门 , id=" + id);// 控制台打印❌ 硬编码:不想输出这条日志了,只能回来删代码、重新部署。想临时关掉某些日志?做不到。❌ 只能输出到控制台:服务器上的控制台一闪而过,没法存到文件里长期保留、排查历史问题。❌ 不便扩展维护:想按天/按大小切分日志文件?想区分"普通信息"和"错误信息"分开展示?想控制不同包输出不同详细程度?全都做不到。📌。
2026-08-23 16:09:06
235
原创 JavaWeb后端开发学习手册
文章摘要 本文系统介绍了JavaWeb后端开发三大核心工具:Maven、SpringBootWeb和MySQL的使用方法。重点讲解了Maven的安装配置、依赖管理、生命周期等核心概念,以及如何在IDEA中集成Maven项目。文章提供了详细的配置示例和常见问题解决方案,包括阿里云镜像配置、依赖冲突处理原则等实用技巧,帮助开发者从零开始构建规范的JavaWeb项目。内容涵盖项目结构标准化、自动化构建流程等关键知识点,适合后端开发初学者快速入门。
2026-08-22 10:59:43
300
原创 一篇文章教你如何整合MyBatis入Spring boot
ok,咱们先想一个问题:上篇原生 MyBatis,你是不是写了一堆"搭台子"的样板代码?每次都要读配置 → 建工厂 → 开会话 → 拿 Mapper,烦不烦?😩Spring Boot 干的事就是:把这些样板全自动化了。你只管写业务,框架把台子搭好。浏览器 → Controller → Service → Mapper → MySQL接收请求 业务逻辑 MyBatis 代理 存数据📌最直观的区别:原生里你要才能拿 Mapper;Spring Boot 里 Mapper 直接@Autowired。
2026-08-22 10:50:51
315
原创 Javaweb---MyBatis增删改查
ok,我们先别急着写代码,先搞清楚MyBatis 在你的项目里到底干了啥。如果你之前手写过 JDBC,一定被这一坨东西折磨过:注册驱动、建连接、写、处理ResultSet、关连接……又臭又长,还全是样板代码。MyBatis 就是一个"半自动 ORM 框架"✅连接、预编译、结果集解析—— MyBatis 帮你做;❌SQL 语句—— 还是要你自己写(这恰恰是它"灵活、好控制"的原因,想怎么写怎么写)。MyBatis = JDBC 的"自动挡"版本,但方向盘还在你手里。原生 JDBCMyBatis。
2026-08-22 10:42:59
235
原创 Java数据结构类整理
本文介绍了Java中常用的数据结构及其基本操作,包括数组、二维数组、Arrays工具类、字符串、StringBuilder以及List接口的两种实现(ArrayList和LinkedList)。主要内容包括:1)一维和二维数组的声明、初始化和遍历;2)Arrays类提供的排序、填充、复制等实用方法;3)String的常用操作和不可变性;4)StringBuilder的高效字符串处理;5)ArrayList(动态数组)和LinkedList(双链表)的基本操作差异。这些数据结构是Java编程的基础,掌握它们的
2026-07-26 20:04:08
164
原创 一篇文章教你轻松上手Markdown
这篇Markdown入门教程主要介绍了基础语法和实用工具。内容包括:1)环境准备(VSCode安装及插件配置);2)核心语法(标题、引用、列表、表格、段落格式、代码块和超链接);3)导出PDF方法。教程通过具体示例展示了各级标题、多级引用、任务清单、文本修饰(加粗/高亮/删除线等)的写法,并提供了代码块插入和超链接设置方法。最后说明如何通过网页预览转换为PDF格式保存。全文采用清晰的层级结构和实例演示,适合Markdown初学者快速掌握基本用法。
2026-07-03 17:00:45
241
原创 Java - -- 面向对象和方法
本文对比了Java和C++在面向对象编程方面的差异,重点介绍了Java面向对象的具体实现。Java强制纯面向对象,所有函数必须依附于类,而C++支持多范式编程。文章详细讲解了Java中的方法定义、重载、值传递特性,以及类和对象的概念,包括构造方法、static关键字和访问修饰符的使用。通过示例代码展示了如何创建类、实例化对象、实现方法重载和构造方法重载,以及封装思想的应用。最后简要提及了Java的异常处理机制。全文通过具体代码示例,帮助读者理解Java面向对象编程的核心概念和实现方式。
2026-06-02 15:59:47
197
原创 Java的包和import
本文介绍了Java中包的概念和使用方法。包在物理上对应文件夹结构,通过package声明所属包。同一包内的类可直接使用,跨包使用需import导入,支持精确导入单个类或通配符导入整个包。文章列举了常见类包如java.util、java.lang等,并通过VSCode项目示例展示了如何在主程序中使用自定义包。最后强调了java.lang包自动导入的特性,并提供了实际项目中的包引用示例。
2026-05-24 18:00:58
218
原创 java语法基础入门
本文介绍了Java语言的基础知识,包括程序结构、输入输出、变量类型、运算符和控制流等核心概念。Java作为面向对象语言,具有"一次编译,到处运行"的特点,其程序必须写在类中,main函数作为固定入口。文章详细讲解了标准输入输出方法、8种基本数据类型及其转换规则,以及算术、比较、逻辑和位运算等运算符的使用。在控制流部分,涵盖了if/else条件判断、for/while循环、for-each遍历和switch语句等流程控制结构,并对比了Java与C/C++的异同。这些基础知识为Java编程入
2026-05-23 12:05:37
404
原创 胎教级 LInux基础命令行----文件的查找,删除和查看
本文介绍了Linux系统的基本文件概念和常用命令。主要内容包括:1) 文件和目录的定义与区别,目录是存储文件名列表的特殊文件;2) Linux树形目录结构及各主要目录功能;3) 基础命令格式和常用命令如ls、cd、pwd等;4) 相对路径与绝对路径的区别;5) 创建/查看/复制/移动/删除文件和目录的命令(mkdir、touch、cat/more、cp、mv、rm);6) 通配符的使用方法。文章通过对比Windows系统,帮助读者理解Linux文件系统的特点,并提供了详细命令语法和使用示例,适合Linux初
2026-05-18 12:59:35
366
原创 二维数组花式遍历----从零开始的数据结构学习
本文总结了LeetCode中关于数组翻转和螺旋遍历的解题方法。对于矩阵旋转问题,提出先沿对角线镜像对称再翻转每行的解法;对于螺旋遍历问题,介绍了通过动态调整上下左右边界来实现顺时针遍历的技巧。文章通过48题(旋转图像)、54题(螺旋矩阵)和59题(螺旋矩阵II)等例题,展示了如何运用"螺旋遍历"的核心思想解决相关问题,并提供了对应的C++代码实现。同时类比了字符串翻转和链表旋转等相似题型,强调掌握通用解题模式的重要性。
2026-05-15 18:36:41
384
原创 LInux入门-----一篇文章教会你下载虚拟机和utunbu
Linux诞生于1991年,由芬兰大学生Linus Torvalds开发,最初只是个人项目,后发展为开源操作系统内核。经过30多年发展,Linux已广泛应用于服务器(占全球网站90%以上)、超级计算机(包揽TOP500)、嵌入式系统、移动设备(Android内核)等领域。对于初学者,可通过VMware虚拟机安装Ubuntu系统体验Linux,配置时需注意选择正确的ISO镜像文件。作为开源系统的代表,Linux在云计算、人工智能等前沿技术领域持续发挥重要作用。
2026-05-09 23:58:25
632
原创 python ----- 基础语法速过
本文介绍了Python基础语法要点:1. 代码执行从首行开始,通过缩进定义代码块;2. 变量无需声明类型,支持动态类型转换;3. 输出支持多种格式化方式(%格式化、f-string);4. 输入使用input(),需手动类型转换;5. 运算符包含算术、比较和逻辑运算;6. 控制流包括if-elif-else条件判断和for/while循环,其中for循环常配合range()使用。文章还对比了Python与C/C++的语法差异,如无自增运算符、使用缩进替代花括号等。
2026-05-09 10:22:24
365
原创 差分数组 ----- 从零开始的数据结构
本文介绍了差分数组的概念与应用。差分数组通过存储相邻元素的差值,实现对原数组区间增减的高效操作(O(1)时间复杂度)。与前缀和数组形成对比,差分数组适用于频繁修改区间值的场景。文章详细讲解了差分数组的构造方法、核心的区间增减操作实现,以及如何还原原始数组。这种空间换时间的思路,为处理数组区间修改问题提供了高效解决方案。
2026-04-29 10:32:01
202
原创 二叉树算法-----从零开始的算法
本文系统介绍了二叉树的两种解题思维:遍历思想和分解思想。遍历思想通过前序、中序、后序遍历获取答案,分解思想则通过递归函数解决子问题来推导原问题答案。文章详细分析了二叉树前中后序的位置特性:前序只能获取父节点数据,中序可获取父节点和子树数据,后序能获取左右子树和父节点数据。通过LeetCode 104(最大深度)和543(直径)等例题,对比展示了两种解题方法的具体实现,指出分解思想通常需要递归函数返回值,而遍历思想则不需要。最后强调分解思想适用于存在"子树/子问题"特征的题目。
2026-04-27 23:10:52
532
原创 多叉树定义与遍历-----从零开始的数据结构
本文介绍了多叉树的数据结构及其遍历方法。多叉树是二叉树的扩展,每个节点可以有任意数量的子节点,通常用数组存储子节点指针。文章对比了二叉树和多叉树的代码表示,并详细讲解了两种遍历方式:递归遍历(DFS)和层序遍历(BFS)。其中DFS分为前序和后序遍历,而BFS部分提供了三种不同实现方式,包括基本实现、记录深度的版本以及处理不同路径权重的变体。最后提到森林是多叉树的集合,并鼓励读者点赞支持。
2026-04-26 19:17:05
383
原创 二叉树遍历----从零开始的数据结构
《二叉树遍历方法全解析》摘要: 本文系统介绍了二叉树的两种核心遍历方式:递归遍历(DFS)和层序遍历(BFS)。递归遍历包含前序、中序、后序三种变体,通过递归调用实现,分别对应不同的节点访问顺序。层序遍历通过队列实现,文中详细讲解了三种实现方式:基础版本、带深度记录的常用版本,以及支持复杂权重场景的灵活版本。每种方法都配有代码示例和适用场景分析,帮助读者根据实际需求选择最佳方案。文章最后总结了各方法的优缺点,为算法实践提供了清晰指导。
2026-04-26 12:09:27
613
原创 二叉树---从零开始的数据结构学习
摘要:本文介绍了二叉树的基本概念,包括节点、父节点、子节点、根节点、叶子节点,以及树的高度、深度和节点的度。重点讲解了五种常见二叉树:满二叉树、完全二叉树、二叉搜索树(BST)、高度平衡二叉树和自平衡二叉树的特点与区别。最后通过C++代码展示了二叉树的链表实现方式,构建了一个包含6个节点的二叉树实例。作者表示将继续更新数据结构相关内容。
2026-04-25 20:16:54
393
原创 Leetcode---哈希表题目合集
本文介绍了哈希表在算法中的多种应用场景和解题方法。主要内容包括:1. 哈希表的基本功能(映射、频率记录、辅助拷贝等)及其空间优化技巧;2. 典型题目解析:两数之和(哈希表优化查找)、最长连续序列(哈希集合优化查找)、单词规律(双向映射验证)、随机反转矩阵(降维处理)、随机链表复制(节点映射)、字母异位词判断(频率统计)等;3. 数组模拟哈希表的技巧,用于降低空间复杂度;4. 哈希表与其它数据结构(如链表、字符串)的结合应用。文章通过具体代码示例,展示了如何利用哈希表高效解决各类算法问题。
2026-04-18 20:46:38
912
原创 二维数组“降维”到一维数组----从零开始的算法
本文介绍了矩阵重塑的核心原理与应用场景。核心前提是保持元素总数不变并按行优先顺序操作,适用于矩阵变形、图像处理、数据扁平化等场景。重点解析了行主序和列主序两种存储方式的内存布局差异及其坐标映射公式:行主序为index=rowC+col,列主序为index=colR+row。通过LeetCode 566题示例,展示了如何将m×n矩阵转换为r×c矩阵的两种代码实现方法,时间复杂度均为O(m*n)。文章还说明了不同存储顺序对计算性能的影响,行主序在访问行元素时具有更好的缓存局部性。最后强调矩阵重塑的关键在于元素总
2026-04-17 15:29:21
380
原创 初入Random库---C++现代随机生成库
文章摘要:本文深入解析C++的random库,介绍其三大核心组件:种子源、引擎和分布。种子源(如std::random_device)提供初始熵值,引擎(如std::mt19937梅森旋转算法)生成伪随机序列,分布则将原始随机数映射到所需范围(如均匀分布、正态分布等)。文章重点剖析了mt19937引擎的特性,解释了种子与引擎的关系,并通过代码示例演示了如何正确使用随机数生成器。同时对比了time(NULL)和random_device()两种种子生成方式的优缺点,为开发者提供了高效可靠的随机数生成方案。
2026-04-15 11:52:45
801
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅