- 博客(54)
- 资源 (1)
- 收藏
- 关注
原创 我理解了右值引用的秘密,轻松提高C++性能
C++左值/右值核心机制与应用指南 摘要:C++11引入的左值/右值语义体系通过移动语义实现零拷贝优化。关键点包括:1) 值类别分类(lvalue/xvalue/prvalue);2) 右值引用实现资源转移,需配合std::move使用;3) 移动构造/赋值需遵循Rule of Five;4) 完美转发通过std::forward保持参数原始类型。典型应用场景包括容器扩容优化、高效参数传递和返回值优化。注意事项:右值引用变量仍是左值,移动后对象状态不可靠,避免const右值引用。最佳实践推荐优先按值传递+移
2026-06-03 10:15:00
178
原创 揭开高性能网络库中Buffer与TcpConnection设计的秘密
【Buffer设计摘要】C++缓冲区核心实现动态内存管理的非阻塞I/O数据缓冲,通过vector容器和读写指针(_reader_idx/_writer_idx)高效处理粘包/半包问题。关键特性包括:1)智能扩容机制makeSpace()自动处理空间不足;2)零拷贝接口peek()/beginWrite();3)支持行读取getline()和文件描述符读取readFd()。典型应用场景为网络通信中的数据暂存与解析,通过预留8字节头部空间(kCheapPrepend)和批量操作优化性能,实现高效内存管理与数据传
2026-05-29 12:53:26
350
原创 C++高并发内存池的整体设计和实现思路_C 语言
《高并发内存池设计与实现解析》摘要: 本文详细阐述了三级内存池架构的设计与实现,重点剖析了ThreadCache的核心机制。系统采用分层结构(ThreadCache/CentralCache/PageCache)实现高效内存管理,通过8字节至8KB的多级对齐策略控制内碎片率在8-12%区间。关键技术包括:嵌入式指针自由链表、thread_local无锁访问、批量预取策略等。测试表明单次操作仅需2-3次指针访问,配合分桶索引算法和局部存储优化,显著提升并发性能。后续将完善跨线程回收与Span合并算法,进一步降
2026-05-28 11:26:00
61
原创 深入探讨8051单片机C351语言及编译器应用
C351程序结构以main函数为入口,采用无限循环作为主任务框架。与C51相比,C351在中断处理、函数重入和变量存储等方面有显著改进:中断支持扩展到63个且新增快速中断机制;所有函数默认可重入,使用XRAM栈管理;变量存储统一采用XRAM。参数传递采用"两寄存器+栈"混合模型,SFR支持扩展到0x80以下地址。编程限制包括禁止复杂表达式和标志位依赖,需显式拆分运算步骤。迁移时需注意表达式重构和输出函数替换,建议通过生成的汇编代码验证转换正确性。
2026-05-27 21:47:25
361
原创 Sql Server数据库远程连接访问配置
此时对于本机,可以选用127.0.0.1的地址去登录数据库了,这一般也是大部分人选择连接本机数据库时使用的服务器名称,因为非常方便确认。而对于本机或者是同一个局域网下的其它电脑设备来说,便可以远程访问数据库了,只需要知道需要远程访问端的ip地址以及登录名和登录密码即可!这篇文章主要介绍了SqlServer数据库远程连接访问应该如何配置,有需要的小伙伴可以参考一下。好了,到这里就万事大吉了,此时就可以通过远程访问sql server了,我们看看成果吧!这是数据库以及它的官方管理工具。
2026-04-21 10:50:36
174
原创 Springboot 3项目整合Knife4j接口文档(接口分组详细教程)
springboot 3开始javax包改成了jakarta,而swagger-oas等包中依然使用的是javax,所以报错。另外springfox已经停止更新有段时间了,并且不支持OpenAPI 3标准,升级Springboot 3.0以后会有更多问题暴露出来。而SpringBoot 3只支持OpenAPI 3规范,因此Spring官网推荐了Springdocspringfox 3.0.0: 同时兼容OpenAPI 2以及OpenAPI 3,但是停更很久了。
2026-04-21 08:28:31
356
原创 redis exporter手册
svn:https://30.31.8.200/svn/版本/operator/prometheus/prometheus 安装包-20211122/redis_exporter-v1.3.5.linux-amd64 (1).tar.gz。./redis_exporter -redis.addr ip:端口 -redis.password redis密码 (-web.listen-address IP:指定的redisexporter端口) &http://IP:指定的redisexporter端口/
2026-04-21 06:11:31
204
原创 mysql如何发现慢查询sql
long_query_time = 2 # 设置慢查询时间阈值,单位为秒,这里表示查询时间超过 2 秒的被记录为慢查询。通过以上方法,可以及时发现 MySQL 中的慢查询 SQL,以便进行优化和改进,提高数据库的性能。二、使用 SHOW PROCESSLIST 命令。四、分析数据库的性能指标。三、使用性能监控工具。
2026-04-21 03:53:11
24
原创 【JavaEE】Spring Boot 项目创建
src/main/java: Java 源代码src/main/resources: 为静态资源或配置件:/static:静态资源件夹, 如前期学的js, css, html等静态件,不需要服务器数据进绑定的/templates:模版资源件夹, 主要存放动态模板件, 如JSP, Freemarker, Thymeleaf等需要服务器动态渲染数据的件src/test/java: 测试代码源代码除了下面的文件,其他都可以删了。状态码:Http请求的处理结果200:成功2XX 成功。
2026-04-19 20:00:22
181
原创 Springboot项目:使用MockMvc测试get和post接口(含单个和多个请求参数场景)
使用MockMvc可以做到controller层的测试。在初始化mockMvc的时候:(1)如果想测试单个controller(2)如果想测试所有controller。
2026-04-19 17:11:49
194
原创 Spring Boot整合Redisson的两种方式
Redis是一个开源的内存数据库,支持多种数据类型,如字符串、哈希、列表、集合和有序集合等,常用于缓存、消息队列、计数器、分布式锁和搜索等应用场景。Redisson则是一个基于Redis实现的Java驻内存数据网格,提供了一系列分布式的Java常用对象和多种锁机制,以及分布式服务,使开发者能更集中于处理业务逻辑。Redisson不支持字符串操作、排序、事务、管道、分区等Redis特性,但Redisson 提供了许多其他功能,如分布式闭锁、分布式计数器、分布式信号量等。
2026-04-19 14:32:39
174
原创 node.js内置模块之---crypto 模块
在 Node.js 中,crypto模块提供了多种加密功能,包括哈希、对称加密、非对称加密和数字签名等。通过crypto模块,可以进行各种加密和解密操作,保护敏感数据的安全性。
2026-04-19 11:43:55
161
原创 MySQL 的 INSERT(插入数据)详解
如果你要插入的值涵盖了表中的所有列,可以省略列名部分。但请注意,值的顺序必须与表中列的顺序相同。无论是基础的单行插入,还是高级的插入否则更新和数据迁移。语句非常灵活,支持多种语法形式,可以根据具体需求选择合适的用法。如果你希望在插入数据时忽略已经存在的记录(即不抛出错误),可以使用。如果你希望在插入数据时遇到主键或唯一键冲突时更新现有记录,可以使用。语法来插入数据,这种方式更适用于需要明确指定列名和值的场景。语法,适用于插入单行数据。子句中指定多组值,从而一次性插入多行数据。语句的详细语法和使用示例。
2026-04-19 03:14:10
242
原创 解决:nginx [error] open() “usrlocalnginxlogsnginx.pid“ failed (2 No such file or directory)
2、如果路径正确,但仍然没有 nginx.pid 文件,可以手动启动 Nginx,它应该会自动生成 nginx.pid 文件:/usr/local/nginx/sbin/nginx,然后再尝试执行nginx -s reload命令。3、再次启动 Nginx:/usr/local/nginx/sbin/nginx 或者:/usr/local/nginx/sbin/nginx -s reload。指令指定的路径是否正确。命令查找 Nginx 进程:ps -ef | grep nginx。
2026-04-18 07:56:55
158
原创 删除文件夹,被提示“需要来自 TrustedInstaller 的权限。。。”的解决方案
TrustedInstaller 是一个内置的系统账户,主要用于安装和更新 Windows 操作系统文件。这个账户具有非常高的权限,可以对系统文件和文件夹进行修改,而普通用户和管理员账户通常没有这样的权限。当你尝试删除或修改某些系统文件夹(如 windows.old),系统会提示你需要 TrustedInstaller 的权限,因为这些文件夹最初由 TrustedInstaller 创建,并且只有它具有完全控制的权限。
2026-04-18 05:33:58
220
原创 【MySQL】表的相关操作
这种做法相当于是把当初创建表时的有效操作给记录下来了,所以是最详细的,包含了说明和字符集等等,不过可以发现的时候上面的写法貌似和当初自己写的不太一样,这是因为mysqld要对命令进行语法和词法分析,并对其按照标准进行修改优化,最后再去执行优化后的命令,也就是上面这样。和库一样,不要轻易对表进行修改和删除,因为数据库是比较接近底层的,上层程序可能有很多地方都要用到这个数据库以及对应的表,如果你把名字改了,那上层都得跟着改,降低了维护性。可以发现,修改是直接覆盖最初的指令,把原来的属性和描述信息直接替换了。
2026-04-18 03:09:24
250
原创 Spring总结(上)
1. 使用构造函数2. 使用静态工厂3. 使用实例化工厂Bean对象类:1.对象注入PersonDaoBean对象类:PersonServiceBean对象类:方法一:方法二:注意:方法一中的一个dao对象可被多个service bean对象使用,但方法二却只能使用一次2.基本类型注入3.集合类型的装配Spring容器注入的配置:测试:通过构造器传入参数注入值:配置如下:
2026-04-18 00:46:47
29
原创 Redis的优势和特点
Remote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。
2026-04-04 05:01:47
361
原创 MySQL中查看表结构
DESCRIBE或DESC:适合快速查看表的基本结构。:提供更详细的列信息,如默认值和额外信息。:显示创建表的完整SQL语句,包括所有列定义、索引和约束。:通过查询系统数据库,获取最详细的元数据信息。
2026-04-04 02:01:52
56
原创 springboot整合modbus实现通讯
本文基于springboot和modbus4j进行简单封装,达到开箱即用的目的,目前本方案仅实现了tcp通讯。代码会放在最后,按照使用方法操作后就可以直接使用在使用本方案之前,有必要对modbus有一个简单的认知,其中包含modbus协议Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。
2026-04-02 08:08:30
366
原创 redis info 详解
info Commandstats模块,是Redis命令统计信息,包含各个命令的命令名、总次数、总耗时、平均耗时。info Stats模块,是Redis的基础统计信息,包含了:连接、命令、网络、过期、同步等很多统计信息。info CPU模块,包含了Redis进程和子进程对于CPU消耗的一些统计信息。info Persistence模块。info Keyspace模块。info Clients模块。info Server模块。info Memory模块。info Stats模块。info CPU模块。
2026-04-02 04:50:37
47
原创 MySQL 查看有哪些表
这两种方法都可以有效地列出指定数据库中的所有表。选择哪种方法取决于你的具体需求和偏好。命令行工具、MySQL Workbench 等)连接到你的 MySQL 服务器。是一个系统数据库,包含了关于所有其他数据库的信息。首先,你需要使用 MySQL 客户端工具(如。命令选择你要查看表的数据库。表来获取特定数据库中的表信息。
2026-04-02 01:34:07
224
原创 Java进阶09文件
*需要注意:**length()这个方法,只能返回文件的大小,如果是文件夹调用,不会报错,但是返回的是错误数据!File封装的对象仅仅是一个路径名,这个路径可以是存在的,也可以是不存在的。//2、根据传入的字符串(父级路径,子级路径) 封装File对象。**注意:**delete()方法只能删除空文件夹,且不走回收站。//3、根据传入(父级路径文件对象,子级路径)封装File对象。File类代表操作系统的文件对象**(文件、文件夹)**//1、根据传入的字符串路径,封装File对象。
2026-04-01 23:34:18
311
原创 第二章 Spring中的Bean
19、对于prototype作用域的Bean,Spring只负责创建,当容器创建了Bean实例后,Bean的实例就交给客户端代码来管理,Spring容器将不再跟踪其生命周期()。16、Spring容器支持多种形式的Bean的装配方式,如基于XML的装配、基于注解(Annotation)的装配和自动装配(其中最常用的是基于XML的装配)()。A、Spring容器支持多种形式的Bean的装配方式,如基于XML的装配、基于注解(Annotation)的装配和自动装配(其中最常用的是基于XML的装配);
2026-04-01 20:12:49
360
原创 头歌答案--爬虫实战
一个网页的源代码时常有成百上千行,其中很多代码都是为了布局页面样式服务的,而我们时常关心的是网页上的数据,而并不关心样式代码。所以如何从冗长的网页源代码中提取我们关心的数据,是这一关我们将要一起学习和体验的内容。服务器端收到请求后,会返回该网页的超文本文件,浏览器收到服务器端发来的网页超文本文件后,对其进行解析,然后在窗口中显示该超文本文件对应的网页。上一关我们学习了如何访问给定的网页并保存信息到本地,本关我们要从上一关访问的网页中提取出嵌套的。本关任务:利用 Opener 方法,完成一个简易的爬取程序。
2026-04-01 06:14:32
1157
原创 【MySQL】MySQL复合查询--多表查询自连接子查询
查询和10号部门的工作岗位相同的雇员的名字,岗位,工资,部门号,但是不包含10自己的。显示工资比部门30的任意员工的工资高的员工的姓名、工资和部门号(包含自己部门的员工)单行子查询是指子查询只返回单列,单行数据;查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J。这里使用分组查询即可,先查出最高的工资,然后查询工资等于最高工资的员工的姓名和工作岗位。显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号。的,而多列子查询则是指查询返回多个列数据的子查询语句。
2026-04-01 03:09:28
367
原创 Springboot报错:Lombok annotation handler class lombok.javac.handlers.HandleData failed on Dxx.java
我发现不同模块之间,pom里面写的lombok版本号并不相同,因此想通过修改子模块中pom.xml中的版本号与其他版本号一致,来改掉这个问题。在我重复clean compile install了,并且关了IDEA重启了无数遍以后(这个方法确实有时候是有用的,也不妨试试,全靠运气)我没听,因为那个模块是别人写的,而且有很多个地方都写了@Data,我想:要改岂不是全都要改了?拉了别人一整个大项目的代码,项目里有很多个模块,因为期间互相依赖,所以需要分别启动每个模块的服务。事实证明,不要怕麻烦!
2026-03-31 06:28:09
41
原创 PLSQL执行.sql文件
原文链接:https://blog.csdn.net/iamlzyoco/article/details/136322981。版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。2.打开plsql选择命令窗口,即选择File->New->Command Window;注意:一定记得最后一步,提交后,才能查询到更新后的数据。中选择需要执行的.sql文件,最后点击打开。3.输入@然后按回车键,在弹出来的文件。
2026-03-30 06:05:58
67
原创 MS SQL Server partition by 函数实战三 成绩排名
关键语句:row_number() over (partition by zwmc order by kszcj desc,kscj1 desc,kscj2 desc),按 zwmc (职位名称)分区,以kszcj(考试总成绩) 降序排列,第二排序以kscj1(分项考试成绩1) 降序排列,,第三排序以kscj2(分项考试成绩2) 降序排列,row_number() 函数起到了总排序功能。现希望根据总成绩计算排名,成绩越高排名越靠前,相同成绩排名并列,另外有并列则按总数递增,如两个第1后是第3。
2026-03-30 02:33:13
383
原创 【SpringBoot】 解决报错Content type ‘multipartform-data; boundary=...; charset=UTF-8‘ not supported
RequestParam注解用来接收请求url后面的参数,或者Content-Type为multipart/form-data、application/x-www-form-urlencoded时的http body数据。例如,如果你发送一个JSON格式的数据到服务器,可以创建一个对应的Java类,并使用@RequestBody来将JSON数据映射到这个类的对象上。总的来说,@RequestParam注解用于获取简单的键值对数据,而@RequestBody注解用于将请求体映射到复杂的数据对象。
2026-03-28 13:31:36
237
原创 SpringBoot连接多数据源MySQL、SqlServer等(MyBatisPlus测试)
经过上述演示,我们已经实现了在springboot项目中实现多数据库源的连接和操作,如果需要使用不同数据库,按照上述操作思路即可实现。
2026-03-28 09:23:51
186
原创 PostgreSQL常用时间函数与时间计算提取示例说明
主要用于计算一些特殊时间,函数说明截断成指定的精度,第1个参数指定精度select date_trunc('year',now()) as 当年第1天,date_trunc('year',now() + interval '1 year') - interval '1 day' as 当年最后1天,date_trunc('month',now()) as 当月第1天,
2026-03-27 14:21:45
323
原创 Linux安装RabbitMQ
RabbitMQ 管理界面中的顶部标签(OverviewChannelsExchangesAdmin)提供了对 RabbitMQ 集群的不同方面的管理和监控功能。1. Overview(概览)功能:提供 RabbitMQ 集群或单个节点的总体运行状态。显示有关队列、交换机、连接、通道等的统计信息。包含的主要信息:Totals:队列中的消息总数、消息速率(每分钟发布/确认/投递的消息数量)。Nodes:显示所有节点的资源使用(内存、磁盘、CPU、Erlang 进程等)。
2026-03-27 10:16:08
236
原创 MySQL数据库报错:ERROR 2002 (HY000) Can‘t connect to local MySQL server through socket
在安装或配置MySQL数据库时,是一个常见的错误,这可能会阻碍数据库的正常使用。本文将深入探讨这个错误的原因、诊断方法以及详细的解决步骤,帮助你快速恢复MySQL数据库的正常运行。
2026-03-26 03:40:05
232
原创 Docker:基于自制openjdk8镜像 or 官方openjdk8镜像,制作tomcat镜像
78.56 MBopenjdk二进制下载地址Dockerfile中,source /etc/profile不能加载的原因为什么还需要选择使用他的原因:三 中,tomcat普通用户交互式启动tomcat#在 Docker 容器中,/etc/profile 文件不会在容器启动时自动执行,这是因为 Docker 容器通常不会启动交互式登录 shell,而是直接运行指定的命令。
2026-03-26 00:34:21
217
原创 nginx-静态资源部署
静态资源通常指的是那些不会随着用户请求或服务器状态而变化的文件。这些资源包括图片、视频、音频、HTML文件、CSS文件、JavaScript文件、软件安装包、APK文件以及压缩包文件等。一旦这些资源被上传到服务器上,它们的内容就是固定的,服务器会直接返回这些资源的内容给客户端,客户端只需进行渲染或下载即可。同源策略: 当协议,域名(服务名),端口号相同时则为同源。当使用的URL不同源时,即产生跨域问题。
2026-03-25 05:21:34
196
原创 MySQL 8.0在windows环境安装及配置
首先我们选择 Custom 后,点击 Back 退回去,退回去后选择 Full ,点击 Next ,这时点击 Back 再次退回去,此时再一次选择 Custom ,这时我们发现已经自动选好了。1、安装包下载完成后,安装前准备工作:查看设备名称不能有中文字符,如果有,需要修改。9、点击一系列的Next和Finish后,进入下图界面。5、连续点击Next,然后进入下图界面,选择红框中的选项,点击Next。4、配置好路径后,点击Next,进入下图界面,然后点击Execute。),然后点击一系列的Next。
2026-03-25 02:46:41
188
原创 【RabbitMQ】超详细Windows系统下RabbitMQ的安装配置
RabbitMQ 是一个流行的开源消息代理,采用 AMQP(高级消息队列协议)标准。它允许应用程序之间以异步方式交换数据,确保消息的可靠性和灵活性。RabbitMQ 适用于各种场景,如微服务架构、异步处理、工作队列等。高可用性:支持集群模式和镜像队列。消息确认:确保消息被成功处理。丰富的插件支持:可以扩展功能,例如监控、管理等。RabbitMQ 是一个强大的消息队列中间件,能够帮助你实现高效的异步消息传递。通过本文的详细步骤,你应该能够在 Windows 系统下顺利安装和配置 RabbitMQ。
2026-03-24 15:01:57
430
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅