1. 指针与引用 对比项 指针 T* 引用 T& 可否为空 可以,nullptr 合法 必须绑定对象,无空引用 能否重新绑定 可以指向别的对象 绑定后终身不变 是否占内存 占 8 字节(64 位系统) 语义上是别名,通常不占;作类成员或数组元素时占位 算术运算 支持 p+1、p[i] 不支持 多级 ...
Rust 所有权与所有权转移机制拆解 一句话本质 Rust 的所有权是一套编译期内存管理规则:每个值都有一个“所有者”,所有者负责在离开作用域时释放这个值。所谓“所有权转移 / Move”,就是把这个释放责任从旧所有者转交给新所有者,旧所有者随后失效。 一、三条核心规则 每个值都有且只有一个所有者 ...
做数据科学和机器学习,范数(Norm)这个东西你迟早会碰到。 损失函数正则化、向量相似度计算、矩阵分解——这些场景背后都有范数的影子。 但很多同学对范数的理解停留在"好像是个求长度的东西"这个层面,具体怎么算、不同范数之间有什么区别,一问就含糊了。 其实范数没那么抽象,用 NumPy 的 linal ...
深挖MySQL与PG核心底层差异,不盲目站队!拆解两者架构、MVCC机制、索引体系核心区别,详解PG的JSONB、GIN索引、递归CTE等独家实战能力。盘点6个MySQL迁PG生产级大坑及解决方案,搭配Java实战代码,提供可落地的数据库选型指南,适配面试、架构选型、业务迁移场景。 ...
写 Java 的时候,基本类型和包装类型之间的转换看起来是最不需要动脑子的部分:需要一个 int,就给它一个 Integer;需要一个 Integer,就丢一个 int 过去,编译器会默默帮你转换。这种自动转换就是自动装箱和自动拆箱。平时用起来很顺手,可一旦放进循环、放进判等、放进集合,它就可能变成 ...
做数据工程的人大概都有过这样的经历:每天到工位第一件事,打开终端敲几条 SQL,看看关键表的行数是不是正常、最新数据更新到几点了、字段空值有没有突然飙高。 这套检查做完,可能半个小时就过去了。 如果某天查出来有问题,还得翻日志、查上下游、挨个通知相关的人。 这些任务虽然不复杂,但琐碎且需每天重复。 ...
数据工程师每天打交道的东西,很大一部分是文本: 应用日志 Nginx access log CSV 里混着脏数据的字段 API 返回的 JSON 片段 配置文件 爬下来的 HTML 这些文本往往不是完全结构化的,或者格式五花八门,用传统的 split、replace 处理起来很累,写一堆条件判断也不 ...
Node.js vs JVM:任务模型与性能差异全解析 TL;DR——Node.js 和 JVM 代表了两种截然不同的并发哲学。Node.js 以单线程事件循环为核心,在 I/O 密集型场景下以极低的内存开销和快速启动见长,但在 CPU 密集型任务中事件循环会成为硬瓶颈。JVM 传统上依赖平台线程的 ...
时间序列数据里,趋势、周期和随机波动经常是混在一起的。 直接看原始曲线,很容易被短期波动带偏,比如把一次促销当成长期增长,或者把季节性回落当成业务衰退。 时间序列分解要解决的就是这个问题,把一条看起来乱七八糟的曲线拆成几个更有解释性的部分,让我们分别看: 长期方向 重复周期 剩下的随机噪声。 本文的 ...
前阵子对账,一笔订单 3 件、单价 19.99,脚本算出来的应收是 59.96999999999999531041794398。写这段代码的人其实已经"用了 Decimal",问题出在 Decimal(19.99) 少了一对引号。 金额计算换成 Decimal 只是第一步,后面还有舍入、精度、序列化 ...
沿用 counter + ready 的例子,从 Java 内存模型一路看到 HotSpot 与 x86-64,理解 volatile 如何提供可见性和有序性,以及它与 Atomic、Mutex 的边界。 ...
时间序列分析听起来有点学术,但其实干起来挺直接的。 你有一串按时间排列的数据,想知道里面有没有趋势、有没有周期性、噪声有多大,或者两个序列之间有没有延迟关系。 SciPy 这个库在信号处理、统计检验方面提供了不少现成的工具,配合 Matplotlib 画图,基本能覆盖日常分析的大部分需求。 本文不是 ...
一、char 数组(C 风格字符串)函数需包含头文件 include <cstring>,数组定义为 char s;,以 \0 结尾 。 长度计算: strlen(s):返回字符串有效长度(不计\0)。 注意与sizeof(s)区分,后者返回数组总字节数 。 例子: char a[6]="abcd" ...
dsh 生成学习文档, 一份面向纯 CPU 环境的大语言模型实战指南:从数据、分词、注意力、GPT 实现, 到预训练、推理加速、分类微调、指令微调、LoRA、评估与部署,全部代码均可直接运行。 但所有示例不依赖 GPU,不依赖网络下载,采用确定性生成的语料与数据集,因此任何人都能在普通电脑上复现的每 ...
Python 的 datetime 有个很阴的设计:同一个类型既可以带时区(aware),也可以不带(naive),两种对象长得一样、方法一样,大多数时候混着用也不报错。等它出问题的时候,通常是某个定时任务早跑了八个小时,或者报表里凭空多出一天。 下面七个坑都是实跑出来的,环境 Python 3.1 ...
这是我写的一个音乐播放器。它麻雀虽小五脏俱全,支持播放控制、歌词同步高亮、SQLite歌单持久化。本文总结了项目结构,以及信号槽、多线程、数据库等核心代码实现,附踩坑记录。 ...
MQ 面试高频干货!RabbitMQ、Kafka、RocketMQ 选型深度解析,摒弃单纯参数背诵,基于业务场景推导选型方案。横向对比三大 MQ 核心能力,附带事务消息、幂等消费、消息零丢失可直接落地 Java 代码。拆解消息丢失、积压、重复消费等生产难题,附面试应答模板,掌握完整 MQ 选型方法论... ...
日常数据处理中,经常遇到需要把一批 CSV 文件汇总到一个 Excel 工作簿的场景——每个 CSV 对应一个工作表,方便统一查看和分发。Python 原生 csv 模块可以读取数据,但要逐个写入 Excel 的不同工作表,还需要额外的写入逻辑。使用 Free Spire.XLS for Pytho ...
金融圈里用 AI 的不止量化交易一个行当:银行和消费金融公司每天审批的贷款背后,是另一套模型——风控评分。它和量化是两种手艺:量化赌市场,风控赌人。 ...
数据清洗是每个和数据打交道的人都绕不开的日常。 无论是做分析、跑模型,还是给业务方出报表,拿到的原始数据往往都带着重复记录、缺失值、格式错误,甚至一些明显违背常识的条目。 我以前习惯每次遇到问题就临时写几行 drop_duplicates() 或 fillna(),但下次换一份数据,同样的脏法又得重 ...