自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 周末旅行规划思维树实例

当然可以!让我们用一个非常生活化的例子——“规划一次周末短途旅行”——来展示思维树的推理过程。

2026-05-12 22:07:10 320

原创 思维树:让AI像人一样多路思考

思维树(Tree of Thoughts, ToT)是大语言模型处理复杂问题时,一种模仿人类系统性思考的结构化推理方法。其核心是将一个复杂问题分解为多个步骤(“思维”节点),并探索不同的解决路径,最终通过评估和回溯找到最优解。

2026-05-12 22:00:05 365

原创 Java调用C++方法的JNI实战

Java调用C++方法的核心技术是,它是一种Java平台的标准编程接口,允许Java代码与用其他语言(如C、C++、Assembly)编写的本地应用程序和库进行互操作。其基本思想是:在Java层声明一个没有方法体、由native关键字修饰的方法,然后在C/C++层实现该方法,并将实现编译成一个动态链接库(在Linux/Android上是.so,在Windows上是.dll),最后在Java程序中加载该库并调用方法。以下是完整的实现流程与技术详解,主要包括静态注册和动态注册两种方式。

2026-03-20 09:11:24 441

原创 HashSet如何基于HashMap实现

HashSet是Java集合框架中Set接口的一个重要实现类,它的底层完全依赖于HashMap来实现。这种设计体现了Java集合框架的巧妙架构思想 - 通过组合复用现有的数据结构来创建新的数据结构。从架构层面看,HashSet实际上是一个"适配器"包装了HashMap,将Set接口的操作转换为对HashMap键的操作。

2026-03-16 17:11:48 323

原创 Vue生命周期全解析

Vue.js 作为当前最流行的前端框架之一,其核心特性之一就是完善的生命周期管理机制。Vue 生命周期指的是 Vue 实例从创建、挂载、更新到销毁的完整过程,在这个过程中,Vue 提供了一系列的钩子函数(Hook Functions),允许开发者在特定阶段插入自定义代码逻辑。

2026-03-16 09:36:34 368

原创 Vue生命周期全解析

Vue.js 作为当前最流行的前端框架之一,其核心特性之一就是完善的生命周期管理机制。Vue 生命周期指的是 Vue 实例从创建、挂载、更新到销毁的完整过程,在这个过程中,Vue 提供了一系列的钩子函数(Hook Functions),允许开发者在特定阶段插入自定义代码逻辑。

2026-03-16 09:36:07 417

原创 Spring Bean生命周期全解析

实例化扩展:通过自定义InstantiationAwareBeanPostProcessor控制实例化过程属性注入扩展:使用BeanPostProcessor修改属性值初始化扩展:多种初始化方法的组合使用销毁扩展:确保资源正确释放理解Spring Bean的完整生命周期有助于开发者更好地利用Spring框架的特性,编写出更加健壮和可维护的应用程序。通过合理使用各个扩展点,可以实现复杂的业务需求,如性能监控、事务管理、AOP代理等高级功能。

2026-03-16 09:33:48 410

原创 BeanFactory与FactoryBean区别详解

BeanFactory是Spring框架中IoC(控制反转)容器的核心接口,它定义了Spring容器管理Bean的基本规范。作为Spring框架的基础设施,BeanFactory负责Bean的创建、配置、装配和生命周期管理。

2026-03-15 16:41:02 428

原创 23种设计模式全解析

核心思想:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。// 抽象产品A// 抽象产品B// 抽象工厂// Windows系列产品工厂。

2026-03-14 20:59:44 502

原创 p命名空间注入原理详解

p命名空间:转换为,在Bean实例化后通过反射调用setter方法注入c命名空间:转换为,在Bean实例化时通过构造器参数注入util命名空间:创建对应的FactoryBean,在依赖查找时生成集合实例。

2026-03-14 20:34:20 371

原创 BIO NIO AIO核心区别解析

BIO、NIO和AIO代表了Java I/O模型的不同发展阶段,从简单的同步阻塞到高效的异步非阻塞。选择合适的I/O模型需要综合考虑应用场景、性能需求、开发成本和团队技术栈等因素。对于现代高并发应用,NIO和AIO因其优异的性能和资源利用率而成为主流选择,而BIO因其简单性在某些特定场景下仍有其价值。

2026-03-13 18:05:40 360

原创 Java内部类四种类型解析

Java内部类是定义在另一个类内部的类,它们提供了更好的封装性和代码组织方式。根据定义位置和特性的不同,Java内部类主要分为四种类型。

2026-03-13 17:34:26 379

原创 Java沙箱机制详解

Java沙箱机制是一种核心的安全模型,它通过在受限环境中执行代码来保护系统资源免受潜在恶意代码的侵害。这种机制的核心思想是,限制其对系统关键资源的访问权限。

2026-03-13 11:29:00 439

原创 Spring事务传播特性全解析

Spring框架提供了7种标准的事务传播行为,这些行为通过注解的属性进行配置。每种传播特性都有其特定的使用场景和行为规则。传播特性常量名描述适用场景REQUIRED支持当前事务,如果不存在则创建新事务默认设置,大多数业务场景SUPPORTS支持当前事务,如果不存在则以非事务方式执行查询操作,可事务可非事务MANDATORY支持当前事务,如果不存在则抛出异常必须在外层事务中调用的方法新建事务,暂停当前事务独立子任务,需要单独提交以非事务方式执行,暂停当前事务。

2026-03-12 09:09:33 245

原创 @Transactional注解失效的六大场景

注解失效的根本原因在于 Spring AOP 代理机制的工作方式。要确保事务正常生效,关键是要理解代理对象的调用路径,避免绕过代理的直接调用。在实际项目中,通过合理的架构设计、明确的异常配置以及对 Spring 事务机制的深入理解,可以有效地避免事务失效问题。事务方法必须通过 Spring 代理对象调用,而不能通过this引用直接调用。这是解决大多数注解失效问题的关键所在。

2026-03-11 22:21:11 435 3

原创 索引失效的五大关键场景

MySQL索引失效是指数据库查询时,虽然存在合适的索引,但优化器决定不使用索引而选择全表扫描的情况。索引失效会导致查询性能急剧下降,特别是在数据量较大的表中,性能差异可能达到几个数量级。

2026-03-11 22:03:08 416

原创 MySQL工作原理全解析

MySQL 作为最流行的开源关系型数据库,其内部运行机制虽然复杂,但我们可以通过几个关键维度来通俗理解其核心原理。

2026-03-09 11:12:01 373

原创 MyBatis核心原理通俗解析

想象一下,MyBatis 就像一个智能的 SQL 翻译官,它在 Java 对象和数据库之间建立了一座桥梁。当我们用 Java 代码操作对象时,MyBatis 负责将这些操作"翻译"成 SQL 语句发送给数据库,同时把数据库返回的结果"翻译"成 Java 对象。传统 JDBCMyBatis需要手动编写大量重复的 JDBC 代码自动处理连接、参数设置、结果映射SQL 与 Java 代码混合在一起SQL 与 Java 代码分离,易于维护需要手动处理异常和资源释放自动管理资源,异常处理更友好。

2026-03-09 09:35:33 401

原创 OpenClaw与Trae核心差异解析

OpenClaw 在运行时会动态选择最适合当前任务的模型,支持本地部署的 Ollama 模型以及云端 API 如 Qwen、Claude、Gemini 等。Trae 在开发阶段提供模型测试和比较功能,帮助开发者选择最优的模型配置。开发者在 Trae 中定义工具接口和调用逻辑,但这些工具的实际执行需要在部署后的运行环境中完成。开发者可以在 Trae 中编写智能体逻辑、配置工具调用、测试模型响应,最终生成可在 OpenClaw 或其他框架中部署的智能体配置。,专注于部署后的稳定性、扩展性和自动化能力。

2026-03-08 23:25:32 1213

原创 SpringCloud微服务架构通俗解析

SpringCloud 通过一系列组件的协同工作,为微服务架构提供了完整的解决方案。就像一支训练有素的交响乐团,每个组件各司其职,共同演奏出和谐的系统运行乐章。从服务注册发现到负载均衡,从熔断降级到 API 网关,SpringCloud 让复杂的分布式系统变得可控、可靠、可维护。对于初学者来说,理解 SpringCloud 的关键在于把握每个组件解决的问题和它们之间的协作关系。在实际项目中,可以根据具体需求选择合适的组件组合,构建适合自己业务场景的微服务架构。

2026-03-08 17:58:37 463

原创 Spring Boot自动配置原理揭秘

通过自动配置、起步依赖和内嵌容器三大核心技术,极大简化了 Spring 应用的开发和部署过程。它就像一个智能的装配工厂,根据你的需求(依赖)和环境(类路径),自动组装出最适合的运行环境。这种设计使得开发者能够专注于业务逻辑的实现,而不需要花费大量时间在繁琐的配置和环境搭建上,真正实现了"约定优于配置"的开发理念。无论是新手还是有经验的开发者,都能通过 Spring Boot 快速构建出高质量的企业级应用。

2026-03-08 17:46:55 380

原创 开闭原则与依赖倒置通俗解

在软件设计领域,开闭原则(OCP)和依赖倒置原则(DIP)是面向对象设计的两个核心原则。虽然它们都旨在提高代码的灵活性和可维护性,但关注的维度和实现方式有所不同。

2026-03-08 12:10:27 392

原创 Java类主动使用七大场景解析

static {System.out.println("ArrayClass初始化完成");// 创建数组不会触发数组元素类型的初始化System.out.println("数组创建完成,但ArrayClass未初始化");

2026-03-05 23:46:41 335

原创 LockSupport许可机制详解

LockSupport是Java并发包中的核心工具类,提供了线程阻塞和唤醒的基础能力。下面从核心机制、底层实现、应用场景等多个维度详细解析其原理。

2026-03-04 15:42:05 323

原创 Future与CompletableFuture实战解析

Future作为Java异步编程的基础设施,为开发者提供了基本的异步任务管理能力,但其阻塞特性和有限的组合能力在高并发场景下存在明显不足。CompletableFuture通过引入函数式编程范式、丰富的组合操作和灵活的异常处理机制,极大地提升了Java异步编程的表达能力和执行效率。简单异步任务:使用Future基本能满足需求复杂业务流程:优先选择CompletableFuture进行任务编排高并发场景:结合虚拟线程和合适的线程池策略微服务调用。

2026-02-28 18:21:09 562

原创 Spring Boot自动装配原理揭秘

/ 1. 定义配置属性类// getter 和 setter 方法// 2. 创建自动配置类@Bean// 3. 在 META-INF/spring.factories 中注册thread:pool:这样用户只需要引入 Starter 依赖并配置相应属性,即可获得预配置的线程池 Bean。

2026-02-28 16:45:36 622

原创 Java锁机制全解析

Java作为企业级应用开发的主流语言,其并发编程中的锁机制是确保线程安全的核心技术。根据不同的分类标准和应用场景,Java提供了多种锁实现方式,下面通过系统分类和代码示例详细说明。Java的锁机制提供了从简单到复杂、从重量级到轻量级的完整解决方案。在实际开发中,应根据具体的并发场景、性能要求和功能需求选择合适的锁类型。对于简单的同步需求,在读多写少的场景中,读写锁能显著提升性能;而在极致性能要求的场景下,对于需要高级功能的复杂场景,和原子类提供了近乎无锁的性能表现。五、锁的选择策略与最佳实践。

2026-02-26 08:19:03 362

原创 事务四大特性及其实现机制

事务是数据库管理系统中的一个逻辑工作单元,它包含了一系列的数据库操作,这些操作要么全部成功执行,要么全部失败回滚。

2026-02-25 23:13:49 591

原创 DeepSeek原理揭秘:MoE与MLA如何提升效率

DeepSeek的成功源于三大技术支柱MoE架构:通过专家分工实现参数高效利用MLA注意力:通过低秩压缩优化内存和计算工程优化:通过混合精度和分布式训练突破规模限制这些技术创新共同使得DeepSeek能够在保持优异性能的同时,大幅降低计算成本和推理延迟,为大规模语言模型的实用化铺平了道路。

2026-02-24 14:01:08 578

原创 低秩压缩核心原理详解

低秩压缩的核心思想基于这样一个观察:在许多实际应用中,数据矩阵往往具有内在的低维结构。这意味着虽然矩阵在形式上可能是高维的,但其有效信息实际上存在于一个低维子空间中。

2026-02-24 14:00:52 658

原创 JVM类加载三阶段详解

Java虚拟机(JVM)的类加载机制是Java语言实现"一次编写,到处运行"特性的核心基础。该机制通过将类的字节码文件动态加载到内存,并转换为可执行的Java类型,支撑了Java程序的动态性和灵活性。通过掌握各个阶段的特点和类加载器的工作原理,开发者能够更好地应对复杂的系统设计和运行时问题。三个阶段,其中链接阶段又可细分为验证、准备和解析三个子阶段。JVM通过类加载器(ClassLoader)实现类的加载,采用双亲委派模型确保类的唯一性和安全性。初始化阶段是类加载的最后一步,执行类构造器。

2026-02-23 09:17:33 558

原创 AQS核心机制与实战应用

AQS是一个用于构建锁和其他同步组件的基础框架,它通过一个int类型的state变量来表示同步状态,并维护一个FIFO队列来管理获取同步状态失败的线程。AQS采用了模板方法模式,使用者只需要继承AQS并重写指定的方法,就能实现自定义的同步组件。// 状态为1表示闭锁已打开,可以获取1 : -1;// 打开闭锁,状态设置为1。

2026-02-23 09:03:23 607

原创 【JVM学习总结系列】 JVM内存分配

首先谈谈对java语言的理解,java称为“半编译半解释”的语言。什么是编译?什么是解释?这个可以理解为机器是怎么看懂我们的代码。就好比我们(机器)去理解一篇外语文章(代码),如果先把文章翻译为中文,我们再读,就是编译型,如果是读一句,翻译一句,就是解释。那为什么java称为“半编译半解释”呢?是因为java编译器(javac)首先把java代码编译成class文件,然后在jvm中再把class文件的内容一点点解释给机器。

2025-04-14 00:20:19 1227

原创 【搭建开源项目系列】部署docker私有镜像仓库

前面已经完成了网络和基础环境的配置,接下来,打算构建一个私有的docker仓库,大致的背景需求是这样的:1、目前有一台阿里云服务器,2核2G,40G硬盘。之前有测试过,在云服务器部署并且运行一个jenkins、mysql和nacos,机器就会卡死重启,估计是内存太小了,因此不能跑太多的服务。2、使用内网穿透工具,扩充了一台闲置的笔记本电脑,前面那些基础服务全部迁移到笔记本电脑,阿里云只运行着内网穿透的服务端。

2025-02-17 00:18:50 792

原创 【搭建开源项目系列】使用内网穿透之后,在笔记本电脑搭建一个运行环境

最近想做一个自己的开源项目网站,首先需要搭建一个开发环境和运行环境。由于是个人的兴趣爱好,没有太多的资金支持,所以只准备了一个云服务器和笔记本电脑。笔记本电脑使用的是家庭网络,为了改造成服务器,需要进行内网穿透。在之前发布的一篇文章里面,已经介绍过,如何使用nps对笔记本进行内网穿透。云服务器只是2核2G,笔记本电脑是4核16G,所以打算在笔记本电脑上安装主要使用的软件,例如虚拟机、docker、mysql、redis等等。而拥有外网ip的云服务器则作为跳板机,安装nps服务端。

2025-01-30 00:54:05 1720

原创 API加解密签名算法-技术调研

接口请求参数采用明文的方式进行传输,存在被窃听、篡改或伪造请求的风险,无法保证参数在传输过程中的机密性和完整性。

2025-01-03 16:09:11 1892

原创 基于文档的快捷问答开源项目调研

基于文档的快捷问答开源项目调研项目名称ChatFilesh2oGPT pdfGPT简介项目是一个前端工程,使用supabase后端服务和数据库,每个聊天窗口对应一份文档。Apachae V2开源项目,功能强大,支持查询和总结私人文档,以及与本地私有GPT LLM聊天,有丰富的自定义配置项。轻量级PDF智能聊天,文档数据保存在本地服务器,在聊天时将文档拆分向量化,并且计算相似度,在内存中使用向量数据,不会持久化保存。示例工程地址https://lkt-chatfiles.v

2025-01-03 15:30:23 403

原创 opencv+paddlehub实现视频背景替换

Opencv(Open Source Computer Vision Library)是一个基于开源发行的跨平台计算机视觉库,它实现了图像处理和计算机视觉方面的很多通用算法。图像处理侧重于“处理”图像,如增强,还原,去噪,分割等等;而计算机视觉重点在于使用计算机来模拟人的视觉,因此模拟才是计算机视觉领域的最终目标。opencv有很多模块,最基本的模块core、hightgui、imgproc。core模块实现了最核心的数据结构及基本算法,如绘图函数、数组操作相关函数等。

2025-01-03 14:41:06 981

原创 【搭建开源项目系列】一键实现内网穿透:闲置电脑变废为宝

但是,问题来了,家里的wifl网络是内网,外网无法访问,公司电脑和阿里云就无法跟家里的电脑打通,那就还是一台闲置的电脑,并非服务器。ngrok独立于环境,因为它可以将流量传输到任何地方运行的服务,而无需更改环境的网络。frp是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。ngrok适合于在开发阶段,将本地的应用服务暴露到公网,使用方式简单,只需要下载安装客户端即可,开箱即用,支持自定义域名。可以将 ngrok 视为应用程序的前门。

2025-01-03 14:14:07 2864 2

API加解密签名算法-实验代码

API加解密签名算法-实验代码

2025-01-03

空空如也

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

TA关注的人

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