自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 详解java中的ConcurrentSkipListMap

ConcurrentSkipListMap是Java并发包中的线程安全有序映射实现,基于跳表数据结构。它支持自然排序或自定义比较器,提供高效的并发访问能力。核心特性包括:采用多层链表结构实现快速查找;使用CAS操作保证并发安全;查找、插入、删除操作均为O(logn)时间复杂度。适用于需要高并发有序访问的场景,如实时排行榜、范围查询等。相比TreeMap具有更好的并发性能,相比ConcurrentHashMap则提供有序性支持。使用时需注意禁止null键值、内存开销较大等限制。

2025-12-24 17:03:34 1036

原创 大模型学习笔记——学习前的基础准备:论文中常见的数学符号与函数回顾

本文系统梳理了Transformer模型中常见的数学符号与激活函数。详细介绍了求和符号Σ、偏导数∂、梯度∇等数学符号的读音和含义,并解释了sigmoid、softmax、ReLU、GELU等核心激活函数的特性与应用场景。特别对GELU函数进行了深入分析,包括其数学公式、近似计算方法以及在Transformer中的重要作用。此外还补充介绍了tanh、LeakyReLU、Swish等衍生函数的特性。这些数学工具是理解Transformer注意力机制和前馈网络的关键基础。

2025-12-23 20:43:00 888

原创 详解java中的线程间协作工具:CountDownLatch,Semaphore,CyclicBarrier(二)

Java并发编程中的三大同步工具类各有特点:CountDownLatch用于一次性线程同步,通过计数器实现主线程等待多个子线程完成;Semaphore通过许可证机制控制资源并发访问,支持动态调整许可证数量;CyclicBarrier则实现多线程循环同步,屏障触发后可重置复用。此外,Exchanger支持线程间数据交换,Phaser提供更灵活的多阶段同步能力。这些工具基于AQS实现,适用于不同并发场景,开发者可根据任务特性选择合适的同步机制。

2025-12-19 20:08:25 787

原创 详解java中的BlockingQueue阻塞队列

Java的BlockingQueue是并发编程中实现生产者-消费者模式的核心工具,提供线程安全的阻塞操作。主要实现类包括基于数组的ArrayBlockingQueue、链表的LinkedBlockingQueue、优先级的PriorityBlockingQueue等,各有适用场景。通过锁机制和条件变量保证线程安全,支持阻塞/非阻塞操作及超时控制。典型应用于线程池任务队列、消息传递和流量控制。使用时需注意死锁风险、无界队列的内存问题及性能优化。

2025-12-18 20:25:40 915

原创 大模型学习之——初步了解:量化、LoRA、QLoRA

量化是一种模型压缩技术,通过降低参数精度(如FP32→INT8)减小模型体积,而LoRA则是通过低秩适配器实现高效微调,仅训练少量新增参数。QLoRA结合二者优势,先对模型进行4-bit量化,再应用LoRA微调,使单卡GPU也能训练大模型。实战示例展示了如何使用LoRA微调代码生成模型,包括数据准备、模型配置、训练和推理全流程,并对比了不同场景下的超参数设置建议。三种技术形成了一套递进的模型瘦身+定制方案,显著降低了大规模模型微调的资源门槛。

2025-11-26 20:32:08 1039

原创 RAG系统学习之——基于LangChain+Milvus+Ollama+Streamlit搭建本地RAG系统

本文介绍了如何搭建一个完全本地化的RAG(检索增强生成)系统,结合LangChain、Milvus、Ollama和Streamlit等技术。系统具备文档处理、向量存储、本地大语言模型和友好交互界面,支持多种文件格式,确保数据隐私。文章详细说明了环境配置、核心代码实现、高级功能扩展和部署方案,提供了从开发到生产的一站式解决方案,适用于企业知识库、智能客服等场景,兼顾安全性和可扩展性。

2025-11-18 10:47:42 602

原创 RAG系统学习之——RAG技术详解与实战指南

本文全面介绍了RAG(检索增强生成)技术的背景、定义、优缺点及实战应用。RAG通过结合外部知识检索和大模型生成能力,有效解决了大语言模型的知识局限性和幻觉问题,成为企业知识管理的热门方案。文章详细阐述了RAG的技术架构、演进历程及适用场景,并提供了一个本地RAG系统的实战项目。RAG技术具有知识更新快、成本低、可解释性强等优势,但也面临检索质量依赖、文档处理复杂等挑战,特别适合企业知识库、专业咨询等场景。随着技术发展,RAG正在向模块化、图谱化等更高级形态演进。

2025-11-14 19:16:25 737

原创 Java中的Thread、ThreadLocalMap、ThreadLocal三者之间的关系,ThreadLocalMap.Entry的弱引用设计

ThreadLocal通过ThreadLocalMap实现线程隔离存储,每个线程持有独立的ThreadLocalMap,通过ThreadLocal的set/get方法存取数据。弱引用设计允许ThreadLocal实例被GC回收,但需配合remove()清理残留值,尤其在线程池场景中。相比同步锁,ThreadLocal以空间换时间实现无锁线程安全,适用于数据库连接、会话管理等场景。最佳实践包括及时清理和避免存储大对象,平衡线程安全与内存管理

2025-11-03 19:38:28 730

原创 SpringBoot web项目中使用@ExceptionHandler处理全局异常?或是使用HandlerExceptionResolver?哪种更合适

SpringBoot项目中处理全局异常时,@ExceptionHandler+@ControllerAdvice更适合RESTful API场景,配置简单且与SpringMVC深度集成;HandlerExceptionResolver适用于全局拦截和复杂处理逻辑,但配置复杂。最佳实践是混合使用,优先采用@ControllerAdvice处理Controller层异常,再通过HandlerExceptionResolver捕获未处理的全局异常。建议大多数项目优先选择@ExceptionHandler方式

2025-10-29 19:08:51 873

原创 <? extends T>是什么,<? super T>又是什么,PECS是指什么

Java泛型通配符<? extends T>和<? super T>分别用于生产者(只读)和消费者(只写)场景。<? extends T>表示元素类型为T或其子类,确保安全读取但禁止写入;<? super T>表示元素类型为T或其父类,允许安全写入但读取时类型信息丢失。PECS法则(Producer Extends, Consumer Super)指导这两种通配符的应用,如集合拷贝和栈操作,通过编译期类型检查保证安全性,避免运行时类型错误。

2025-10-27 14:43:24 632

原创 Spring生态HTTP客户端技术演进:RestTemplate、RestClient与WebClient深度解析

Spring框架的HTTP客户端经历了三代技术演进:RestTemplate(同步阻塞)、WebClient(异步非阻塞)和RestClient(过渡方案)。RestTemplate适合低并发场景但存在线程资源消耗问题;WebClient基于响应式编程,在高并发下性能优异;RestClient则在保持兼容性的同时提供异步能力。测试显示WebClient吞吐量达12,000req/s,远优于RestTemplate的2,800req/s。建议传统系统采用渐进式迁移策略,新项目首选WebClient。

2025-10-17 11:19:06 1093

原创 从MyBatis3.4.5中的PropertyNamer看属性名称定义

文章分析了MyBatis中PropertyNamer类对属性命名的处理机制,指出当使用Lombok自动生成getter/setter方法时,若属性名第二个字母大写(如uType),会导致MyBatis无法正确映射字段。原因在于PropertyNamer.methodToProperty()方法会保留第二个字母大写状态,而Lombok生成的getUType()方法与之不匹配。解决方案包括:1)修改属性名前两个字母为小写;2)手动生成符合MyBatis命名规范的getter/setter方法

2025-10-10 12:14:59 552

原创 详解web.xml中的listener与filter

本文系统介绍了Java Web中Listener和Filter两大核心组件。Listener用于监听Servlet容器事件(如应用启动/关闭、Session创建销毁),通过事件驱动模型实现回调;Filter采用责任链模式拦截请求/响应,实现权限控制、日志记录等功能。文章详细对比了两者的配置方式(web.xml/注解)、执行顺序、典型应用场景及注意事项,强调Listener适合全局资源管理,Filter侧重请求处理拦截,并指出在微服务架构中部分功能可迁移至网关层。最后总结了实现规范、线程安全和性能优化等最佳实

2025-06-18 17:12:16 965

原创 算法学习之——LRU最近最少使用

LRU缓存淘汰算法通过双向链表维护访问顺序,哈希表提供快速查找,实现O(1)时间复杂度的关键操作。当缓存满时,算法自动淘汰链表尾部最久未使用的数据,保持高效缓存管理。

2025-06-06 16:37:51 947

原创 发现一个挺好的项目,可以在springboot项目中快速接入DeepSeek API,有需要的可以尝试一下

Spring AI接入DeepSeek AI,SpringBoot2.x版本接入DeepSeek4J,调用DeepSeek API尝鲜AIGC

2025-02-18 20:11:08 812

原创 DeepSeek学习笔记之——DeepSeek-R1论文(英中对照)

DeepSeek-R1,论文学习,论文中英对照阅读学习

2025-02-12 17:18:24 483

原创 DeepSeek学习笔记:Java开发者视角的技术探索

DeepSeek作为国产AI工具,在代码生成、技术文档处理等方面展现出强大潜力。作为开发人员,可以结合自身项目需求,探索模型调优和私有化部署方案~

2025-02-11 16:51:47 1734

原创 DeepSeek学习笔记之——初识DeepSeek

DeepSeek是什么,DeepSeek-R1-Zero,DeepSeek-R1大模型,MoE(Mixture-of Experts),RL(Reinforcement Learning),KD(Knowledge Distillation)学习记录

2025-02-11 14:49:21 1704

原创 使用javaagent实现springboot工程中密码相关配置的统一化配置,避免密钥泄漏

项目中一般都会将密码等信息写在配置文件中,或者写在pom中,但是这种方式容易造成密码泄漏。本文主要是通过javaagent的方式,在项目启动时通过与密钥管理系统ssm交互实现了密钥数据的统一配置管理,从而避免了密钥泄漏的问题。

2025-01-20 17:01:28 1162

原创 聊一聊java中的main方法、premain方法、Instrumentation接口

java中的premain方法是做什么的,它和main有什么区别或联系,Instrumentaion API又是什么,和-javaagent有什么关系,如何在jvm启动应用程序之前插入自定义代码

2025-01-17 20:42:15 1408

原创 Redis学习笔记之——数据类型篇(一)

redis学习笔记,数据结构,5种基本数据类型:string,list,set,zset,hash,3种特殊类型:bitmap,HyperLoglog,Geo。概念、应用场景、实现原理、常用操作命令等

2024-12-27 19:26:19 780

原创 一个简单的Springboot+MybatisPlus+PageHelper+Thymeleaf小例子

springboot+mybatis-plus+pagehelper分页插件+thymeleaf的一个小例子,知道他们是什么,集成方式,以及pagehelper分页的实现原理

2024-12-26 15:51:12 910

原创 记我的Springboot2.6.4从集成swagger到springdoc的坎坷路~

在springboot2.6.4中集成swagger报错,项目无法正常启动,通过各种方法解决,但最后还是选择了springdoc~

2024-12-25 17:42:10 1347

原创 Redis学习笔记之——学习计划

redis,作为最常使用的一个nosql数据库,有必要对它进行一个系统的学习。这里我制定了一个学习计划,接下来将开启的redis学习之旅

2024-12-13 18:23:56 806

原创 设计模式学习之——代理模式

设计模式学习,代理模式,代理模式与装饰者模式的区别与联系,代理模式在spring框架中的应用等

2024-12-12 17:25:15 1097

原创 设计模式学习之——装饰者模式

设计模式学习,装饰者模式/装饰器模式,不改变结构,动态增加行为。

2024-12-12 11:27:59 1025

原创 设计模式学习之——适配器模式

设计模式学习,适配器模式、变压器模式,工作原理、适用场景、优缺点、代码示例等

2024-12-11 14:46:01 1162

原创 设计模式学习之——工厂模式

设计模式学习,简单工厂模式、工厂方法模式、抽象工厂模式,工厂模式在spring框架中的应用,spring框架中的BeanFactory和FactoryBean

2024-12-10 14:52:31 1708

原创 设计模式学习之——单例模式

设计模式学习,单例模式,最常见的设计模式之了。懒汉式、饿汉式、静态内部类、双重检测锁、枚举等。单例模式的应用场景、注意事项。面试中经常问到的关于单例模式的问题有哪些

2024-12-09 11:18:17 1515

原创 设计模式学习之——常见设计模式总览

设计模式学习,三大类型:创建型、结构型、行为型。先对常见设计有个整体的概念,再一一拆解学习

2024-12-09 10:48:21 1015

原创 Springboot项目集成Mybatis-Plus,多数据源配置,写主读从

springboot项目集成mybatis-plus,mybatis-plus多数据源,读写分离,写主读从,mybatis-plus中执行自定义sql

2024-11-29 17:25:49 1635

原创 设计模式学习之——观察者模式

设计模式学习-观察者模式,观察者模式的定义、实现原理、优缺点,应用场景,代码示例,以及观察者模式与发布订阅模式之前的区别与联系

2024-11-29 11:38:02 1103

原创 设计模式学习之——模板方法模式

设计模式学习之——模板方法模式,行为型设计模式,算法骨架固定,但实现步骤可以延迟在子类中实现

2024-11-28 18:46:15 1321

原创 设计模式学习之——策略模式

设计模式学习,策略模式,策略模式常见应用场景,java代码示例

2024-11-28 11:51:43 1815

原创 责任链模式在spring security过滤器链中的应用

责任链模式在spring security过滤器链中的应用,自定义过滤器的实现

2024-11-26 18:05:41 1406 2

原创 设计模式学习之——责任链模式

设计模式学习,责任链设计模式,责任链设计模式使用场景、优缺点,代码示例

2024-11-26 15:54:57 1852

原创 浅聊java中的枚举以及关于枚举的常见面试问题

枚举是通过关键字enum来定义的。枚举的每一个实例都是该枚举类型的一个对象,这些对象在编译时就已经被创建,并且不能被实例化。枚举类默认继承自类,但不能显式继承其他类也不能被继承,因为当枚举被编译为类时会被final修饰,但它可以实现接口)。

2024-08-28 17:38:52 1396 1

原创 Comfyui简直就是低配置机器的福音,1080显卡上也能轻松玩转

本文对比了StableDiffusionWebUI和ComfyUI两种AI图像生成工具。StableDiffusionWebUI界面简洁易用,适合新手快速生成基础图像;而ComfyUI功能更强大,提供高级参数调整和实时预览,更适合专业用户深度定制。两者都基于扩散模型技术,通过逐步去噪生成高质量图像,但ComfyUI对硬件要求更低。文章还解释了扩散模型的工作原理和训练过程。建议初学者选择WebUI入门,有经验者使用ComfyUI进行更复杂的创作。

2024-07-16 11:36:05 3070

原创 MapStruct与BeanUtils处理对象属性复制场景对比

使用MapStruct进行类型转换或对象间属性复制,与BeanUtils.copyProperties进行简单对比

2024-05-28 19:13:33 1305

原创 算法学习之:Raft-分布式一致性/共识算法

Raft算法,分布式一致性算法,共识算法

2024-05-23 18:36:51 1467 1

空空如也

空空如也

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

TA关注的人

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