虚函数表里有什么?(一)——从一个普通类开始
本系列文章,旨在探究C++虚函数表中除函数地址以外的条目,以及这些条目的设计意图和作用,并介绍与此相关的C++类对象内存布局,最后将两者用图解的形式结合起来,给读者带来全局性的视角。让我们从一个简单的类出发,开启我们的探索之旅。 ...
《HelloGitHub》第 108 期
兴趣是最好的老师,HelloGitHub 让你对开源感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Pytho ...
史上最全EffectiveJava总结(二)
方法 49、检查参数的有效性 每次编写方法或构造函数时,都应该考虑参数存在哪些限制,并在文档中记录下来,然后在方法的开头显式地检查。 如果没有在方法开头就验证参数,可能会违反故障原子性。因为方法可能会在执行过程中出现让人困惑的异常而失败,或者计算出错误的结果然后返回,甚至可能埋藏隐患,导致将来在不确 ...
互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp智能体框架开发语音交互
前言 前段时间太忙了博客一直都没来得及更新,但是不代表我已经停止开发了,刚好最近把语音部分给调整了一下,所以就来分享一下具体的内容了。我想说一下,更新晚还是有好处的,社区已经有很多的小伙伴自己实现了一些语音对话功能的案例,比如小智也有.NET客户端了,还有就是一些树莓派对接实时语音api实现对话的功 ...
使用SPA单页面跟MPA多页面的优缺点?
SPA vs MPA 深度解析 1. 概述 什么是 SPA? SPA(Single Page Application,单页面应用)是一种仅加载一个 HTML 页面,并通过 JavaScript 动态更新页面内容的 Web 应用架构。用户在操作时不会触发整页刷新,而是通过 AJAX 或 Fetch A ...
Netty源码—8.编解码原理
大纲 1.读数据入口 2.拆包原理 3.ByteToMessageDecoder解码步骤 4.解码器抽象的解码过程总结 5.Netty里常见的开箱即用的解码器 6.writeAndFlush()方法的大体步骤 7.MessageToByteEncoder的编码步骤 8.unsafe.write()写 ...
一个基于 .NET 开源免费的异地组网和内网穿透工具
前言 今天大姚给大家分享一个基于 .NET 开源免费的异地组网和内网穿透工具:linker。 工具介绍 linker是一个基于 .NET8 开源免费(GPL-2.0 license)的异地组网和内网穿透工具,支持TCP(支持IPV6)打洞、UDP打洞,服务器中继,异地组网使用虚拟网卡将各个客户端组建 ...
Spring AOP 应用
Spring AOP 应用 1. 介绍 AOP:面向切面编程,对面向对象编程的一种补充。 AOP可以将一些公用的代码,自然的嵌入到指定方法的指定位置。 比如: 如上图,我们现在有四个方法,我们想在每个方法执行一开始,输出一个日志信息。但是这样做很麻烦,如果有100个、1000个方法,工作量会很大,而 ...
MySQL 索引:数据库的"GPS 导航"
MySQL 索引:数据库的"GPS 导航" 你是否曾经在千万行数据的海洋中,苦苦搜寻那一条珍贵的记录?没有索引的 MySQL 查询,就像在没有地图的森林里找出口——既累人又低效! 什么是索引? 简单来说,索引就是数据库中的"目录"。想象一下,如果你要在一本 1000 页的字典中找一个单词,你 ...
通俗易懂分布式事务之2PC、3PC、Seata AT模式、Seata TCC模式
通俗易懂分布式事务之2PC、3PC、AT、TCC 单机服务事务提交回滚操作是需要拿到Connection对象,调用提交commit方法或者rollback方法回滚的,例如下面操作 Connection conn = DriverManager.getConnection(...); try{ con ...
常见的 AI 模型格式
来源:博客链接 过去两年,开源 AI 社区一直在热烈讨论新 AI 模型的开发。每天都有越来越多的模型在 Hugging Face 上发布,并被用于实际应用中。然而,开发者在使用这些模型时面临的一个挑战是模型格式的多样性。 在本文中,我们将探讨当下常见的 AI 模型格式,包括: GGUF PyTorc ...
MySQL 的 JSON 查询
MySQL 使用特定的 JSON 路径表达式语法来导航和提取 JSON 文档中的数据, 使用过 JSON_EXTRACT 函数都知道, 这样获取的结果不是真正的行列结构, MySQL 8.0 引入的 JSON_TABLE 函数可以将 JSON 数据转换为关系型表格格式, 将数组中的每个元素转换成表格... ...
c-primer-plus深入解读系列-从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
前言 小提示:阅读本篇内容,至少需要了解double和float的二进制表示规则。 书中的代码示例如下: #include <stdio.h> int main(void) { float a,b; b = 2.0e20 + 1.0; a = b - 2.0e20; printf("%f \n",a ...
掌握设计模式--命令模式
命令模式(Command Pattern) 命令模式(Command Pattern)是一种行为型设计模式,它将请求(命令)封装成对象,从而使您能够参数化客户端(调用者)使用不同的请求、队列请求或者日志请求,甚至支持可撤销的操作。 核心思想是 将请求封装成对象,从而使得调用者与接收者解耦,同时支持请 ...
如何通过物理备份将线下SQL Server迁移到阿里云RDS for SQL Server
简介 物理备份迁移是将SQL Server数据库迁移至阿里云RDS的推荐方法。此方案能够确保数据完整性,同时显著降低迁移过程中的风险及停机时间。相较于逻辑导出导入或第三方工具等其他迁移方式,物理备份还原方法具有更高的效率和可靠性,特别适用于大型数据库或包含特殊对象的数据库迁移场景。 该迁移策略的核心 ...
深度剖析 StarRocks 读取 ORC 加密文件背后的技术
本文介绍了StarRocks数据库如何读取ORC加密文件,包括基础概念以及具体实现方案。深入探讨了利用ORC文件的四层结构和三层索引机制,实现高效查询加密数据。希望通过本文对ORC加密文件读取功能的实现细节的剖析,让读者更加深刻理解ORC文件,同时了解StarRocks支持加解密数据分析的方案。 ...
当Kafka化身抽水马桶:论组件并发提升与系统可用性的量子纠缠关系
《当Kafka化身抽水马桶:论组件并发提升与系统可用性的量子纠缠关系》 引言:一场OOM引发的血案 某个月黑风高的夜晚,监控系统突然发出刺耳的警报——我们的数据发现流水线集体扑街。事后复盘发现:Kafka集群、Gateway、Discovery服务默契地同时表演了OOM自杀式艺术行为。这场事故完美演 ...
apisix~key-auth多消费的使用
在 APISIX 中使用 key-auth 插件实现基于密钥的认证,以下是详细的配置步骤,包括如何保存密钥和证书,以及如何将这些信息分配给客户端 A 和 B。 场景说明 服务 C 是后端服务,需要通过 APISIX 代理。 客户端 A 和 B 需要唯一的密钥(key)来访问服务 C。 APISIX ...
【踩坑系列】使用httpclient调用第三方接口返回javax.net.ssl.SSLHandshakeException异常
1. 踩坑经历 最近做了个需求,需要调用第三方接口获取数据,在联调时一直失败,代码抛出javax.net.ssl.SSLHandshakeException异常, 具体错误信息如下所示: javax.net.ssl.SSLHandshakeException: sun.security.valida ...
MQ 如何保证数据一致性?
前言 上个月,我们有个电商系统出了个灵异事件:用户支付成功了,但订单状态死活不改成“已发货”。 折腾了半天才定位到问题:订单服务的MQ消息,像人间蒸发一样消失了。 这个Bug让我明白:(MQ)消息队列的数据一致性设计,绝对能排进分布式系统三大噩梦之一! 今天这篇文章跟大家一起聊聊,MQ如何保证数据一 ...