自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 4.2、哈希冲突

本文介绍了哈希冲突的两种解决方案:链式地址和开放寻址。链式地址通过将冲突元素存储在链表中实现,但可能导致空间浪费和查询效率下降;开放寻址则通过线性探测等方式在哈希表中寻找空桶,但容易产生聚集现象且删除操作受限。文章提供了链式地址的Python实现示例,包含扩容机制,并指出可通过将链表转为AVL树或红黑树优化查询效率。开放寻址部分重点分析了线性探测的工作原理及其优缺点,强调了直接删除元素可能引发的问题。两种方法各有适用场景,需根据实际需求选择。

2025-09-15 20:39:24 647

原创 4.1、哈希表

本文介绍了哈希表的基本概念、常用操作及其简单实现。哈希表通过键值对映射实现高效查询(O(1)),优于数组和链表。文章展示了Python实现哈希表的初始化、增删改查等操作,并通过Pair类自定义了简单哈希表。重点讨论了哈希冲突问题及扩容解决方案,指出增大容量可减少冲突,但扩容过程涉及数据迁移和重新计算哈希值,开销较大。最后通过学号示例说明了哈希冲突的产生原理。

2025-09-15 20:37:26 892

原创 十三、抽象队列同步器AQS

AQS(AbstractQueuedSynchronizer)是Java并发包中构建锁和同步器的核心框架,采用模板方法模式实现。它通过volatile变量state标识资源状态,使用CLH队列管理等待线程。AQS提供独占和共享两种资源访问模式,子类只需实现tryAcquire/tryRelease等方法即可定制同步器。ReentrantLock、Semaphore等常用同步工具均基于AQS实现,其高效性和可扩展性使其成为Java并发编程的重要基础组件。

2025-08-08 23:57:29 665

原创 第七章 MCP协议

本文介绍了AI应用开发中的MCP(模型上下文协议)技术,重点讲解了如何通过MCP协议实现AI模型与外部服务的交互。文章首先分析了位置查询约会地点的三种实现方案,指出MCP协议是最佳解决方案。随后详细阐述了MCP的概念、架构(包括客户端-服务器端模式和SDK三层架构)和核心功能(重点关注工具调用能力)。最后提供了三种MCP使用方式:云平台、软件客户端和程序集成,并介绍了本地部署和远程调用两种模式。通过学习本文,开发者可以掌握MCP协议的关键技术,实现AI模型与外部服务的高效集成。

2025-07-29 20:18:21 1337

原创 第六章 工具调用

本文介绍了Spring AI框架中的工具调用功能开发,重点讲解了工具调用的概念、原理及实现方式。工具调用允许AI模型通过API或工具扩展功能,主要用于信息检索和任务自动化。Spring AI通过ToolCallback接口定义工具,支持基于Methods方法和Functions函数式编程两种定义模式,其中Methods方式更简单直观。文章详细对比了两种模式的差异,并提供了代码示例说明工具开发流程。工具调用的核心原理是通过请求对象传递工具定义,模型选择工具后由应用程序执行并返回结果。该功能能显著增强AI应用的

2025-07-22 21:29:58 1062

原创 第五章 RAG知识库进阶

本文介绍了基于Spring AI框架开发RAG(检索增强生成)知识库应用的核心技术与实践要点。主要内容包括:1)RAG工作流程的四个关键环节(文档收集切割、向量转换存储、文档过滤检索、查询增强关联);2)Spring AI的ETL(抽取、转换、加载)流程实现,重点解析了DocumentReader组件对不同格式文档(JSON、PDF等)的读取方式;3)文档转换(切片)阶段的DocumentTransformer接口应用。文章通过代码示例展示了JsonReader的具体用法,为开发者提供了RAG应用开发的系统

2025-07-12 20:12:26 541

原创 Python基础之函数

函数是组织好的、可重复使用的,用来实现单一、或相关功能的代码段。函数可以提高应用的模块性和代码的可重复性。python 有许多内置的函数比如 print 打印函数,python 也支持用户实现自己的函数,这类函数也称之为自定义函数。定义一个函数需要遵循以下规则:函数代码块以def关键词开头,后接函数标识符名称和圆括号()。任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。函数的第一行语句可以选择性地使用文档字符串 — 用于存放函数说明。函数内容以冒号。

2025-06-23 20:36:51 959 1

原创 第四章 RAG 知识库基础

RAG(Retr؜ieval-Augmented ‍Generation,检索增强生‌成)是一种信息检索和内容生成的混合架构,可以解决大模型的知识时效性和幻觉问题。从技术上看,RAG在大模型回复内容之前,会从外部知识库中检索用户相关问题作为上下文信息传递给大模型,使得大模型能够回复更相关、更准确的内容。通过 RAG 技术改造后,AI 就能:准确回答关于特定内容的问题在合适的时机推荐相关课程和服务用特定的语气和用户交流提供更新、更准确的建议RAG的工作流程和原理。

2025-06-10 23:07:38 902

原创 第三章 AI应用开发

SpringAI允许定义用户自己的Advisor,按照它的规范实现CallAroundAdvisor、StreamAroundAdvisor即可。这里我们定义自己的日志顾问Advisor,通过看源码可以发现SpringAI内置的SimpleLoggerAdvisor的日志等级是debug而SpringBoot默认的日志等级是info使用SpringAI内置的SimpleLoggerAdvisor:1、在初始化ChatClient时,为其配置顾问Advisor.build();

2025-06-08 12:41:41 1137 1

原创 关于找不到符号,符号变量log的问题的解决方案

在学习鱼皮AI项目时遇到"找不到log变量"的Lombok错误。排查发现,虽然项目自动引入了Lombok依赖,但脚手架生成的pom.xml中还包含了额外的Lombok插件配置。经测试,直接删除整个build标签后问题解决。该配置原本用于处理编译时注解和打包排除依赖,但实际只需基础Lombok依赖即可正常运行。这个经验提示我们脚手架生成的配置可能需要适当简化。

2025-06-02 14:57:00 458 1

原创 第二章 AI大模型接入

该项目是一个AI大模型应用开发实战项目,旨在掌握AI大模型开发全流程技术。项目涵盖AI平台使用、大模型接入(如GPT-4、Llama 3等)、Spring AI+LangChain4j开发框架、本地部署、Prompt工程、多模态处理、RAG知识库构建等核心内容。通过对比不同大模型特性(闭源/开源、单/多模态),指导开发者根据场景需求选择合适模型。项目采用Spring Boot 3.4.4搭建后端,整合Hutool工具库和Knife4j接口文档,提供云服务API和本地部署两种接入方式。

2025-06-02 11:32:20 1302

原创 第一章 项目总览

该项目开发了AI恋爱大师应用和"超级智能体两个核心功能,旨在通过实战掌握AI核心技术。应用具备多轮对话、知识库检索、工具调用等功能,智能体采用ReAct模式实现自主规划。技术栈基于Java 21+Spring Boot 3,整合Spring AI、LangChain4j等框架,支持RAG知识库、PGvector向量数据库及多种工具调用。项目采用Serverless部署,涵盖AI云平台和编程双端实践,帮助开发者深入理解大模型应用开发全流程,提升AI实战能力。

2025-05-29 23:36:01 517

原创 第九章 云平台开发

文章摘要 本章介绍了在线代码生成器平台的开发过程。首先进行需求分析,确定需要实现数据线上化(元信息、项目模板、生成器产物存储)和功能线上化(生成器查看、使用、制作)。随后梳理实现流程,包括数据库设计、基础功能开发、文件上传下载、在线使用与制作功能等。数据库表设计部分详细展示了用户表和代码生成器表的结构,并提供了模拟数据示例。整个平台旨在让用户能够在线搜索、使用、制作和分享各类代码生成器,提升开发效率。

2025-05-25 18:23:32 826

原创 第八章 模板项目生成

本章节修复了模板制作工具的一些bug,并一步步完成了制作SpringBoot项目代码生成器的全部需求,最终通过制作工具+微量人工手动调整的方式完成了复杂的项目生成器。

2025-05-16 18:05:23 973

原创 第七章 模板制作工具

创建时间: 2025年4月21日 09:32状态: Done代码地址:https://github.com/Liucc-123/yuzi-generator.git项目教程:https://www.codefather.cn/course/1790980795074654209上一章节内容:https://blog.youkuaiyun.com/weixin_45284646/article/details/147668585?spm=1011.2415.3001.5331本节教程属于项目的第二阶段 —— 开发代

2025-05-07 13:22:43 1104

原创 第六章 配置能力增强

本章节主要是对代码生成器制作工具的配置能力增强,重点内容有:1. 生成目标 — SpringBoot 模板项目介绍2. 工具通用能力分析3. 配置能力增强开发

2025-05-02 15:27:28 996

原创 第五章 制作工具优化

本章节从可移植性、功能、健壮性、可扩展性四个角度对我们的代码生成器制作工具进行优化

2025-04-18 11:52:45 1090

原创 第四章 制作工具开发

本章节重点内容是实现通过代码生成器制作工具快速完成数据模型文件生成、命令类 Picocli 生成、生成文件 Generator 生成、自动构建 jar 包及封装脚本,实现全自动化,提高代码生成器的制作效率。

2025-04-16 10:46:09 928

原创 第四章 哈希表

哈希表是一种高效的数据结构,通过哈希函数实现O(1)的查询、插入和删除操作。常见的冲突解决方法包括链式地址法和开放寻址。哈希表适用于快速查找和去重操作,但可能面临冲突和空间利用率低的问题。

2025-02-25 22:46:50 822

原创 第三章 命令行开发

学习Java命令行开发,使用Picocli框架实现命令解析和交互式输入,开发代码生成器支持多种子命令,结合命令模式设计,最终封装为可执行的jar包并提供脚本支持。

2025-02-25 21:53:40 879

原创 第三章 栈与队列

栈是一种后进先出(LIFO)的数据结构,常用于括号匹配和深度优先搜索等场景;队列遵循先入先出(FIFO)规则,适用于广度优先搜索和任务调度;双向队列结合了栈和队列的特性,允许在两端进行插入和删除操作,提供更高的灵活性。

2025-02-21 17:43:10 695

原创 第二章 代码生成

代码生成器项目的学习笔记与心得

2025-02-20 19:27:37 1184 1

原创 第二章 数组与链表

数据结构:数组、链表(Java实现)

2025-02-18 12:22:48 787

原创 五、分布式锁-redission

主要包括redission的主要功能(可重入锁、重试机制、锁超时失效及主从一致问题)的实现原理介绍、源码剖析

2024-03-24 23:03:58 1664 3

原创 四、分布式锁之自定义分布式锁

本篇文章主要介绍了在分布式场景下对如何定制一个自己的分布式锁。主要内容有:分布式锁的基本原理、核心实现思路、具体的编码实现、常见的分布式锁问题(锁误删)及通过Lua脚本解决锁被误删问题等

2024-03-17 13:26:41 1207

原创 三、实战篇 优惠券秒杀

本篇文章主要内容介绍:1、基于redis生成全局唯一ID2、实现优惠券秒杀下单3、超卖问题的分析与解决(乐观锁)4、一人一单问题分析与解决(悲观锁)5、集群环境下同步锁失效原因分析

2024-03-10 18:50:52 1166

原创 二、实战篇 商户查询缓存

本篇文章主要介绍内容包括有:缓存的基本概念、基于SpringBoot整合redis的简单使用、缓存更新策略(DB与cache不一致问题);还主要介绍了缓存穿透、缓存雪崩及缓存击穿三种常见的Redis问题及解决方案;最后介绍了基于StringRedisTemplate的简单封装,提高我们的使用效率。

2024-03-07 21:32:18 979 2

原创 黑马点评-成功登录后页面显示错误问题的解决方案

在做黑马点评项目时,成功登录后页面会显示报错。本文描述了该问题的一个解决方案的可能,希望对大家能有所参考!

2024-03-03 11:09:41 2777 3

原创 一、大数据集群搭建

通过VMware虚拟机搭建大数据集群搭建,本文描述了较为详细的集群搭建步骤,旨在帮助小白同学快速上手搭建,也是方便自己后期复习。

2024-03-02 18:19:40 1994

原创 一、Redis基础篇

在Redis基础篇中主要讲解NoSQL的概念、Redis安装、Redis的三种客户端、Redis常见命令及Redis的Java客户端介绍(SpringDataRedis)

2024-03-01 00:10:07 878

原创 docker快速安装中间件

旨在帮助小白通过docker以安全的方式(数据卷)快速搭建常见的中间件服务,本次主要包括MySQL5.7及redis6.2.13

2024-02-28 21:17:04 959 1

原创 Linux下安装JDK8

旨在帮助小白能够在linux环境下快速安装jdk环境

2024-02-28 20:48:42 837

原创 OpenFeign避坑指南

本文主要讲解关于openfeign在不同SpringCloud版本下的使用差异和一些注意事项,避免很多小白再犯相同的错误。

2023-11-27 22:50:21 986

原创 通过人人开源项目快速搭建一个后台管理系统

本文章介绍如何通过人人开源项目快速搭建一个后台管理系统,通过该项目可以节省我们70%左右的工作量。

2023-11-26 21:05:08 1452

原创 十二、SpringCloud Alibaba Nacos服务注册和配置中心

本文主要介绍内容是SpringCloud Alibaba微服务架构中的一个常用组件--Nacos,详细描述了Nacos的注册中心、负载均衡、配置中心的常用功能,还有Nacos的两种部署方式:单机部署和集群方式部署。

2023-11-15 21:03:03 187 1

原创 十一、SpringCloud Sleuth分布式请求链路跟踪

本文主要内容:1、为什么要学习SpringCloud Sleuth?2、Sleuth及ZipKin是什么?3、Sleuth的API语法学习

2023-11-07 20:19:50 150 1

原创 十、SpringCloud Stream消息驱动

文章主要内容:1.为什么要学习SpringCloud Stream?2.Stream是什么?有什么作用?3.Stream的API语法学习

2023-11-06 23:36:49 113

原创 九、SpringCloud Bus消息总线

本文章讲解如何通过SpringCloud Bus+RabbitMQ实现所有服务配置的动态刷新和指定服务配置的动态刷新

2023-10-31 23:39:13 1309 10

原创 八、SpringCloud Config分布式配置中心

本文章根据尚硅谷周阳老师的SpringCloud Config课程做的一些笔记。主要内容是config是什么?如何使用?仍然存在的问题?

2023-10-30 19:43:47 134

原创 23种设计模式之外观模式

外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端之间的耦合度,使得客户端调用非常方便。

2023-05-27 17:45:46 599 1

空空如也

空空如也

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

TA关注的人

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