自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis常用数据类型和命令

1 String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。2 String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象。3 String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M单键多值, 一个键下的value是一个List.Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

2025-04-02 17:14:52 605

原创 《Pandas 性能优化:向量化操作 vs. Swifter 加速,谁才是大数据处理的救星?》

在数据分析中,我们经常需要对 DataFrame 的每一行或每一列进行操作。例如,计算每行中每列的百分比变化。然而,当数据量较大时,apply()方法的性能可能会成为瓶颈。以下是一个常见的场景:python代码解读复制代码。

2025-04-02 17:13:24 562

原创 深入分析Spring的事务隔离级别及实现原理

事务隔离级别旨在解决数据库并发操作中的以下问题:标准隔离级别(由ANSI SQL定义):Spring本身并不直接实现事务隔离,而是通过以下方式与底层数据库交互:依赖数据库的隔离机制 Spring通过设置数据库连接的隔离级别来控制事务行为。例如,当使用时,Spring会在事务开始时调用方法,将数据库连接的隔离级别设置为。事务管理器(PlatformTransactionManager) Spring通过事务管理器与具体的数据访问技术(如JDBC、Hibernate)集成。不同的事务管理器实现类(如、)负责

2025-04-02 17:12:45 630

原创 2025年全新Java面试题合集(程序员必备)

工厂设计模式,顾名思义,就是用来生产对象的,在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严重,假如我们要更换对象,所有new对象的地方都需要修改一遍,这显然违背了软件设计的开闭原则,如果我们使用工厂来生产对象,我们就只和工厂打交道就可以了,彻底和对象解耦,如果要更换对象,直接在工厂里更换该对象即可,达到了与对象解耦的目的;抽象工厂和工厂方法的模式基本一样,区别在于,工厂方法是生产一个具体的产品,而抽象工厂可以用来生产一组相同,有相对关系的产品;

2025-04-02 16:14:49 1229

原创 数据通信技术:数据通信传输信道-PCM信道-实现模数转换/简单了解损耗

在数据通信中,传输信道就像是信息跑来跑去的“路”,可以是网线、光纤、电话线,甚至是无线信号。对于零基础的小白来说,你可以把信道想象成邮递员送信的路线。今天我们重点聊聊数字数据传输信道,顺便了解一下传输损耗,用最简单的语言帮你搞懂这些概念。

2025-04-01 20:15:54 395

原创 数据通信技术:调制速率/数据传信速率/频带利用率/可靠性指标/信道容量/数字信道的信道容量

数据通信听起来高大上,但其实就是设备之间“送信”的技术。送信快不快、准不准、路好不好用,这些都能用一些指标来衡量。对于完全没基础的小白,这些指标可能像天书,但别怕!今天我们用生活化的比喻,把这些指标讲得像聊家常一样接地气,每个公式和符号都会有感性的画面,让你一看就懂。

2025-04-01 20:06:55 511

原创 轻松掌握XXL-JOB:分布式任务调度的利器

是一个轻量级的分布式任务调度框架,主要用于管理和调度各种类型的任务,包括定时任务、分片任务、流程任务等。它的设计目标是开发迅速、学习简单、轻量级、易扩展。

2025-04-01 20:06:21 281

原创 全网最全java面试八股文,持续更新中....

(2)当我们试图把某个类的对象当成 HashMap的 key,或试图将这个类的对象放入 HashSet 中保存时,重写该类的equals(Object obj)方法和 hashCode() 方法很重要,而且这两个方法的返回值必须保持一致:当该类的两个的 hashCode() 返回值相同时,它们通过 equals() 方法比较也应该返回 true。但是,在线程池空闲时,即线程池中没有可运行任务时,它不会释放工作线程,还会占用一定的系统资源。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。

2025-04-01 16:36:58 445

原创 Django Tinymce富文本编辑器

富文本编辑器其实就是将用户输入的内容变为html代码这里的图文混排,只是在图片加入时,单独将图片上传保存,并且回调获取到上传的路径之后只需要服务端后台配置好相关的上传图片访问路由配置即可。

2025-03-27 20:17:51 578

原创 OpenHarmony解读之设备认证:数据接收管理-消息处理(2)

本文将继续介绍HiChain本端接收数据的处理过程中的消息处理阶段的剩余内容。

2025-03-27 20:17:19 128

原创 南大通用GBase 8c 执行计划功能说明

在数据库性能优化中,执行计划(Execution Plan) 是理解 SQL 查询行为的核心工具。它揭示了数据库优化器如何将 SQL 语句转化为具体的物理操作步骤。执行计划是数据库优化器根据 SQL 语句、表结构、统计信息等生成的执行路径方案。在南大通用GBase 8c分布式场景下,执行计划可以帮助运维人员快速定位性能瓶颈,或者实现验证索引使用、优化器决策验证等效果。这篇文章将简述在GBase 8c数据库中的查询全周期,以及执行计划在其中的重要性。

2025-03-27 20:15:25 681

原创 【2025最新版】Java基础面试题总结(70道题含答案解析)

内部类是指在一个类的内部定义的类。成员内部类:可以访问外部类的所有成员 静态内部类:可以访问外部类的静态成员 局部内部类:定义在方法或代码块中,仅在代码块或方法中可见,通常用于临时的对象构建 匿名内部类:没有类名的内部类,通常用于创建短期使用的对象实例,尤其是在接口回调或者事件处理时被广泛使用。篇幅限制下面就只能给大家展示小册部分内容了。

2025-03-27 16:24:40 943

原创 告别手动赋值!优雅处理 MyBatis-Plus 的创建时间和更新时间

注解,用于自动赋值实体类的创建时间和更新时间。但我们的团队主要使用 MyBatis-Plus 作为 ORM 框架,需要提供同类的机制支持。这样就完成了 MyBatis-Plus 的自动填充功能,根据这个思路,也可以实现。启用 MyBatis-Plus 自动填充,在实体类中使用。MyBatis-Plus 也提供了自动填充功能,通过实现。注解来标记哪些字段需要自动填充,并指定填充的策略,如下。为 MyBatis-Plus 提供自动填充功能。为最后修改时间,业务方可以通过。字段为 SQL 表的创建时间,

2025-03-20 15:27:18 111

原创 如何安全备份 Elasticsearch 数据?两种方案任你选如何安全备份 Elasticsearch 数据?两种方案任你选

在对外提供服务的线上环境中,发现 Elasticsearch 集群中核心业务涉及的索引设计不合理,需要做数据迁移,但不允许重启服务。新建索引并设定好 Mapping,然后进行数据 reindex 迁移操作。当确认新索引已经准备就绪,并且所有数据都已经成功迁移后,更新别名。更换别名指向的期间,如果有业务往旧索引。写入数据,可能会导致数据不一致,建议将。,根据需要调整 mapping 配置。使用 Alias 别名对外提供服务。放在一起执行,并在低峰期执行。的 Alias 别名为。

2025-03-20 15:26:01 130

原创 如何安全备份 Elasticsearch 数据?两种方案任你选

elasticsearch-dump 是一个开源的命令行工具,用于将 Elasticsearch 索引数据导出为 JSON 文件,或将 JSON 文件导入 Elasticsearch 中。以下提供两种方案:使用 Elasticsearch 自带的 SNAPSHOT 快照机制,或者利用 elasticsearch-dump 工具完成。有时候需要对 Elasticsearch 集群进行备份,或者恢复到其他集群。将索引数据备份到其他文件存储,恢复时先恢复快照,再恢复索引。

2025-03-20 15:25:08 273

原创 Java面试八股文合集(持续更新)

直接内存不属于JVM内存,是操作系统的内存,常见于NIO操作,用于数据缓冲区,拥有较高的读写性能,且不受JVM内存回收影响BIO(同步阻塞IO)发送请求后线程一直阻塞,直到数据处理完并返回NIO(同步非阻塞IO)通过一个线程轮询大量socket,当有socket准备就绪时通知客户端,客户端调用函数接收。AIO(异步非阻塞IO)每个请求都会绑定一个Buffer;通知操作系统去完成异步的读(这个时间你就可以去做其他的事情)读完之后会通知客户端来读取数据。

2025-03-20 14:53:00 1363

原创 Xshell7连接Debian12系统,中文显示乱码,解决办法一览!

在极少数情况下,问题可能与 SSH 服务端配置相关。如果 Xshell 设置正确但仍有乱码,则可能是服务器端。时出现中文显示乱码问题,通常是由于。

2025-03-18 16:05:44 422

原创 需要的效果它都有,让AI对话开发效率翻倍!这款Ant Design扩展组件库绝了

ant-design-x-vue 是基于 Ant Design Vue 的扩展组件库,专注于增强聊天和AI交互场景的体验。项目提供开箱即用的对话式UI组件,支持消息气泡、智能建议、思维链展示等特色功能,特别适合快速搭建智能客服、AI助手类应用。

2025-03-18 16:05:16 417

原创 OpenHarmony源码分析之分布式软总线:trans_service模块(3)/线程同步锁管理

在分布式软总线提供的数据传输服务中,为了提高处理效率,使用了多线程并发处理的机制,因此就会引入线程同步的问题,所谓线程同步,即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作, 其他线程才能对该内存地址进行操作,而其他线程又处于等待状态,实现线程同步的方法有很多,临界区对象就是其中一种。trans_service模块的线程同步管理是基于互斥锁实现的,而对于不同的底层内核设备,互斥锁的调用库有所不同。

2025-03-18 16:03:54 215

原创 Java最全面试八股文,就业版

LinkedList 使用双向链表方式存储数据,插入只需要记录本项的前后项,索引需要向前或向后进行遍历,所以插入速度较快,线程不安全,频繁在任意位置插入和删除的情况可以使用,如果需要多线程访问,可以使用Connections.synchronizedList()或ConcurrentLinkedQueue。服务器启动时会建立一定数量的池连接,客户端需要连接时,池会返回一个未使用的连接并将其标记为忙,如果没有空闲连接,池会新建一定数量的连接,当连接使用完毕后,池会将其标记为空闲。

2025-03-18 15:15:06 765

原创 Go 项目实战:搭建高效的Gin Web目录结构

引入官网的描述:Gin 是一个使用 Go 语言开发的 Web 框架。它提供类似 Martini 的 API,但性能更佳,速度提升高达40倍。如果你是性能和高效的追求者, 你会爱上 Gin。对比 Beego 框架,Gin 框架采用了极简主义的方法,为追求简单和高性能,没有多余文件或目录,他甚至什么也没有,没有集成任何中间件,一个 main 文件即可启动一个 web 服务。正因为如上所述,过分精简对于开发一个项目来说,前期的项目搭建工作就显得尤为重要。

2025-03-16 15:37:29 1116

原创 SSE 协议的原理和使用方法

Server-Sent Events (SSE) 是一种基于 HTTP 的,专门用于实现服务器主动向浏览器推送数据。它比 WebSocket 更轻量级,适合需要的场景(如实时通知、股票行情、日志流等)。

2025-03-16 15:36:59 843

原创 Markdig:强大的 .NET Markdown 解析器详解

Markdig高性能:Markdig 采用了优化的解析方式,在解析大文件时表现出色。扩展性强:Markdig 支持多种扩展功能,能够满足不同 Markdown 渲染需求。完全兼容 CommonMark:Markdig 完全兼容 CommonMark 规范,支持大多数标准 Markdown 语法,并且在此基础上提供了额外功能。易于自定义:Markdig 允许开发者定制解析器和渲染器,甚至可以编写自己的扩展功能。Markdig 允许你自定义 Markdown 渲染过程。

2025-03-16 15:35:48 584

原创 Java面试100问(含答案)

值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量。引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本,并不是原对象本身,两者指向同一片内存空间。所以对引用对象进行操作会同时改变原对象。java中不存在引用传递,只有值传递。即不存在变量a指向变量b,变量b指向对象的这种情况。StringJoiner是 Java 8 新增的一个 API,它基于 StringBuilder 实现,用于实现对字符串之间通过分隔符拼接的场景。

2025-03-16 14:56:06 805

原创 Java必备面试题大总结(完整版)

我们使用java编译命令就能将java源文件编译对应成字节码文件(.class),字节码文件是一种八位数据的二进制流文件,可以被JVM快速加载到内存中运行AQS全称abstractQueueSynchronizer,即抽象队列同步器,是一种锁机制,它是作为一个基础框架使用的,像Reentrantlock,countdownlatch都是基于AQS实现的AQS内部维护了一个先进先出的双向队列,队列中存储了排队的线程。

2025-03-14 15:18:38 431

原创 基于 Spring Boot 构建多链资产统一管理的区块链接口抽象与适配层

本文详细阐述了如何运用 Spring Boot 框架搭建一个多链资产统一管理系统中的区块链接口抽象与适配层,旨在解决不同区块链在底层差异上带来的管理难题,实现多链资产操作的统一化、标准化,提高系统的扩展性与稳定性。

2025-03-14 15:15:31 255

原创 Gone 从v1升级v2 有哪些变化?

v1 版本中,组件需要嵌入,而在 v2 版本中,组件只需要嵌入gone.Flaggo代码解读复制代码// v1 版本 type Component struct { gone.GonerFlag } // v2 版本 type Component struct { gone.Flag }概念简化:移除宗教性术语,使用更直观的技术术语接口重新设计:减少内部方法的暴露,使接口更加清晰组件加载机制改进:提供更加一致和灵活的组件加载方式Provider 机制引入。

2025-03-14 15:15:00 404

原创 设计一个高性能的分布式限流系统

同时,分布式场景中的限流不同于单机限流,需要应对多节点协同的问题,这就涉及到分布式存储和一致性方案的设计,比如借助 Redis 或 ZooKeeper 实现全局限流。一套高性能的分布式限流系统,不仅能够精准控制流量,防止系统过载,还需要在高并发场景下具备低延迟、高吞吐的能力,同时满足多样化的业务需求。限流算法是分布式限流系统的核心,它直接决定了限流的精准性、性能以及适用场景。设计一个高性能的分布式限流系统,需要从分布式架构的特点出发,解决限流过程中遇到的高并发、数据一致性、低延迟等问题。

2025-03-14 15:12:36 257

原创 如何定时执行某个程序

AIO是异步非阻塞IO模型。在JDK1.7之后,Java提供了异步的相关通道实例。AIO的最大特点是具备异步功能,需要借助操作系统,当底层操作系统具有异步IO模型时,AIO可以在对应的read/write/accept/connection等方法上异步执行,完成后会主动调用回调函数,实现一个CompletionHandler对象。AIO消除了用户态和内核态的切换耗时,使多任务的发展更加容易。此外,它的缓冲机制使得不同的文件读写有更少的线程切换和上下文引起的性能损失。AIO适用于连接数目多且连接比较长(业务重

2025-03-14 14:37:18 117

原创 排查问题的知识记录

pstree:用于查看进程的层级关系,帮助用户理解进程之间的父子关系。pstack:用于查看进程的堆栈信息,适合调试程序的调用路径。strace:用于跟踪程序的系统调用,深入分析程序与操作系统的交互。

2025-03-13 15:35:04 737

原创 如何在 PostgreSQL 中运行 TLS 回归测试

本文将分享一个简单的步骤,介绍如何在 PostgreSQL 中运行 SSL/TLS 回归测试。

2025-03-13 15:34:31 505

原创 《NestJS 避坑指南:常见问题与最佳实践》

NestJS 是一个强大的 TypeScript 框架,适用于构建可扩展的企业级应用。但如果你是新手,可能会遇到各种坑,比如依赖注入错误、生命周期管理不当、性能优化不足等。才能在模块 (Module) 内使用,否则 Nest 无法解析依赖。在 NestJS 中,服务 (Service) 必须先注册到。在 NestJS 中,使用事务时,确保所有操作都在。),否则 NestJS 解析不到依赖,会报错。,帮助你避免踩雷,提高开发效率。内使用,其他模块无法访问。,否则可能会造成内存泄漏。是动态提供的,必须用。

2025-03-13 15:29:03 675

原创 Java最新面试题总结,正在持续更新....

AQS全称abstractQueueSynchronizer,即抽象队列同步器,是一种锁机制,它是作为一个基础框架使用的,像Reentrantlock,countdownlatch都是基于AQS实现的AQS内部维护了一个先进先出的双向队列,队列中存储了排队的线程AQS还维护了一个state,表示锁的状态,0为无锁状态,1为有锁状态,如果一个线程将state修改为1,就相当于当前线程获得了资源对state的修改使用cas操作,保证多线程下的原子性。

2025-03-13 14:56:44 651

原创 【设计模式】从事件驱动到即时更新:掌握观察者模式的核心技巧

定义:又被称为发布-订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。

2025-03-12 15:36:17 726

原创 【设计模式】使用中介者模式实现松耦合设计

一般来说,同事类之间的关系是比较复杂的,多个同事类之间互相关联时,他们之间的关系会呈现为复杂的网状结构,这是一种过度耦合的架构,即不利于类的复用,也不稳定。例如在下左图中,有六个同事类对象,假如对象1发生变化,那么将会有4个对象受到影响。如果对象2发生变化,那么将会有5个对象受到影响。也就是说,同事类之间直接关联的设计是不好的。如果引入中介者模式,那么同事类之间的关系将变为星型结构,从下右图中可以看到,任何一个类的变动,只会影响的类本身,以及中介者,这样就减小了系统的耦合。

2025-03-12 15:35:38 428

原创 UNION和UNION ALL的用法与区别

在MySQL中,可以使用UNION和UNION ALL查询多多条结果,并且它们的结果组合成单个结果集。合并时,两个表对应的列数和数据类型必须相同UNION 从查询结果集中自动去除了重复的行,如果要返回所有匹配行,而不进行删除,可以使用 UNION ALL。

2025-03-12 15:34:58 147

原创 2025年 Java 面试八股文(20w字)

线程池就是事先将多个线程对象放到一个容器中,当使用的时候就不用 new 线程而是直接去池中拿线程即可,节省了开辟子线程的时间,提高的代码执行效率在 JDK 的 java.util.concurrent.Executors 中提供了生成多种线程池的静态方法。然后调用他们的 execute 方法即可。这4种线程池底层 全部是ThreadPoolExecutor对象的实现,阿里规范手册中规定线程池采用ThreadPoolExecutor自定义的,实际开发也是。

2025-03-12 15:17:07 920

原创 用pytorch和txt文件自己训练模型

注意:第九行那个with,就是把文件里的文字提取成字符串并放在text对象里,如果小伙伴对py熟的话,什么PDF,一个文件夹里的所有代码(不建议!代码启动后,看一下控制台日志,目前我觉得最重要的值是loss,loss最小越好,行业内认为0.1 - 1比较稳妥,高于2就是一个大憨憨。3、pytorch分CPU版和GPU版,可能下载了CPU版本,运行以下代码进行验证。这段代码开始运行时会检查环境,可能会出现以下问题,说明代码没有识别到CUDA。代码直接丢ide里,细节慢慢看,代码后面有调试。

2025-03-11 15:44:04 343

原创 Spring Task 实现超时未支付的订单自动取消

以订单的超时未支付时间为15分钟来举例。订单状态已定义在Orders实体类中,如下:ruby代码解读复制代码@Data @Builder @NoArgsConstructor @AllArgsConstructor public class Orders implements Serializable { ​ /** * 订单状态 1待付款 2待接单 3已接单 4派送中 5已完成 6已取消 */ public static final Integer PENDING_PAYMENT = 1;

2025-03-11 15:43:26 166

原创 垃圾收集器收集的垃圾是什么?

在程序的世界里,内存如同城市的地基,承载着每一行代码的运转。而垃圾收集器(Garbage Collector, GC)则是这座城市的清洁系统,它日夜巡视,回收那些不再被需要的“建筑残骸”——即程序运行中产生的垃圾对象。但究竟什么样的数据会被判定为“垃圾”?是我们主动丢弃的变量,还是某种隐秘的规则在幕后裁决?

2025-03-11 15:40:04 338

空空如也

空空如也

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

TA关注的人

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