- 博客(40)
- 收藏
- 关注
原创 CentOS 系统超详细Docker安装教程
1、安装Docker核心前提:服务器必须安装CentOS Linux系统;2、旧环境务必卸载干净,规避版本冲突报错;3、采用阿里云镜像源,彻底解决官方源下载慢、超时问题;4、安装后建议设置开机自启,保证服务长期稳定运行。后续会持续更新Docker镜像加速、容器部署、Compose编排等实用教程,有问题欢迎评论区交流!❤️。
2026-05-20 11:07:27
42
原创 一文读懂Docker是什么?核心原理、优势与核心概念详解(新手必看)
Docker是一套轻量化容器化解决方案,通过打包应用与环境,实现软件的标准化交付,解决环境不一致、部署繁琐、资源浪费等问题,是现代开发、运维、云原生的必备核心技术。镜像(模板)→ 容器(运行实例)→ 仓库(存储分发),掌握这三点,就入门了Docker的核心。后续我会持续更新Docker安装教程、常用命令、镜像打包、Docker Compose部署项目等实战教程,零基础可以持续关注!有问题欢迎评论区交流~
2026-05-19 10:59:56
478
原创 Java for循环跳出全场景解析
关键字作用范围执行效果适用场景continue当前循环跳过当前迭代,继续下一次过滤无效元素,不终止循环break当前循环(可结合标签控制外层循环)终止当前循环,后续迭代不执行某个条件满足,终止整个循环return整个方法终止方法,循环和后续代码都不执行条件触发,直接终止整个业务逻辑。
2026-04-23 15:33:40
445
原创 千万级数据安全归档——分批查询全流程深度解析
不用记复杂流程,掌握以下3句话,就能设计出企业级可用的分批查询方案:1. 分批查询 = 化整为零,把千万级、亿级的大查询,拆成上千次毫秒级的小查询;2. 必须用「主键ID区间查询」(ID > 上一批最大ID),绝对不能用「offset偏移量」;3. 每批查询结束后,记录当前批最大ID,作为下一批起点,实现无缝断点续查。这套分批查询流程,适用于金融、支付、ERP、司库系统等所有「亿级数据表归档」场景,安全、高效、稳定,可直接用于方案设计、架构文档撰写。
2026-04-22 15:47:18
389
原创 达梦数据库慢SQL优化实战:34秒→几十毫秒,索引设计思路全解析
慢SQL优化的核心不是「盲目建索引」,而是「精准定位瓶颈→贴合SQL逻辑设计索引→验证生效」。本文案例中,34秒的慢查询,本质是「全表扫描+显式排序」导致的,通过一套复合索引,既解决了全表扫描问题,又消除了排序开销,实现了300+倍的性能提升。等值条件放最前,关联字段放中间,返回排序放最后,无论是达梦、MySQL还是Oracle,只要是多表关联+等值查询+排序场景,都能直接复用这个思路,新手也能快速上手。如果你的项目中也有类似的慢SQL,或者对执行计划、索引失效场景有疑问,欢迎在评论区留言讨论~
2026-04-16 17:30:11
399
原创 客商数据清洗实操:不改动在用编码,安全完成5000条数据重传
将步骤3中筛选出的“无冲突、可安全更新”的del_前缀数据,改为abc_前缀,作为中间状态,便于后续批量更新,同时与未处理的del_前缀数据区分开。重复数据处理:对编码重复的数据,将原有正式数据状态改为“提交”,同步更新del_前缀的暂存数据,确保编码唯一。同时排查重复数据,为后续处理做准备。此时abc_前缀的数据均为无冲突数据,可直接去掉前缀,还原为正式编码,完成数据更新,且不影响原有在用数据。数据清洗与唯一性校验:去掉del_前缀后,与现有正式数据比对,筛选出无冲突、可安全更新的数据;
2026-04-15 19:32:32
340
原创 MySQL分库分表策略全解析(实战版)
拆分顺序:先垂直拆分(按业务/字段),再水平拆分(按行);先单库分表,再分库分表,逐步演进。策略选择:高频查询、数据均匀性要求高 → 哈希取模;按时间查询多、需扩容 → 范围分片;枚举值查询多 → 列表分片;复杂场景 → 复合分片。工具选择:中小项目 → Sharding-JDBC(轻量、易接入);大型集群 → MyCat/ShardingSphere-Proxy(强扩展性)。核心原则:分片键优先覆盖高频查询;尽量避免跨分片操作;扩容方案提前规划;优先保证数据一致性和业务可用性。
2026-04-07 16:21:30
370
原创 Spring AI 06 提示词(Prompt)全场景实战:从基础到高级模板用法
默认模板使用{}分隔变量,可自定义分隔符(如<>)避免冲突。/*** 5. 自定义模板分隔符:使用<>代替{},避免语法冲突*/// 自定义分隔符 < >.build())今天是<weather>吗?// 渲染变量.stream().content();✅适用场景:提示词中本身包含大括号{},避免变量解析错误。基础提示词.user()直接传入问题,快速调用系统提示词.system()设定AI角色,优先级最高动态提示词:使用{变量}.param()
2026-03-24 21:34:27
542
原创 Spring Ai 05 ChatClient Advisor 实战(日志、提示词增强、内容安全)
实现一个同时支持同步和流式调用的日志记录顾问,完整打印请求和响应信息。/*** 日志记录Advisor:记录AI调用的请求和响应信息* 同时实现CallAdvisor(同步)和StreamAdvisor(流式)接口*/@Slf4j// 定义Advisor名称,用于日志和调试@Override// 执行顺序(0为最高优先级)@Overridereturn 0;/*** 同步调用(call())的增强逻辑*/@Override。
2026-03-23 22:49:50
568
原创 Spring Ai 04 解决 ChatClient 初始化冲突问题
创建配置类,为每个智能体单独声明ChatClientBean,明确绑定对应的ChatModel/*** 声明Ollama智能体的ChatClient Bean* @param ollamaChatModel 自动注入的OllamaChatModel(由Spring AI自动配置)* @return Ollama专属ChatClient*/@Bean/*** 声明DeepSeek智能体的ChatClient Bean。
2026-03-23 21:41:18
290
原创 一文吃透 SQL 的 LEFT JOIN、RIGHT JOIN、INNER JOIN(附实例+避坑)
关系型数据库中,数据通常会分散在多个表中(比如用户表存用户信息,订单表存订单信息),表与表之间通过共同字段(如主键、外键)建立关联。连接查询(JOIN)就是通过这些关联字段,将多个表的列组合起来,提取出我们需要的完整数据。举个最常见的场景:我们有两张表,customers(客户表)和orders(订单表),后续所有实例都基于这两张表展开,先看表结构和测试数据,方便大家对照理解。
2026-03-13 09:50:56
551
原创 吃透 SQL 执行顺序:从根源解决 80% 的 SQL 坑
在日常开发中,很多程序员写 SQL 时总遇到 “字段不存在”“聚合函数报错”“别名用不了” 等问题,排查半天却找不到原因 —— 核心症结往往是混淆了 SQL 的书写顺序和执行顺序。本文将从底层逻辑拆解 SQL 执行顺序,结合实战案例帮你彻底搞懂,从此写 SQL 少踩坑、性能更优。
2026-03-12 17:19:57
424
原创 Spring AI 03 配置Java程序并试运行
Spring AI 基于 构建,而 Spring Boot 3.x 本身要求 Java 17+,因此 等低版本,所以要保证自己的java环境是17及以上的。
2026-03-09 16:33:17
129
原创 安装Ollama更改地址
Ollama安装建议:由于软件占用5-6GB空间,建议将默认安装路径从C盘改为其他盘符(如E:\Ollama)。安装时需在OllamaSetup.exe所在目录打开cmd终端,执行命令指定安装路径。此外,可通过设置用户环境变量OLLAMA_MODELS来自定义模型存储位置,避免占用系统盘空间。这种方法能有效解决C盘空间不足的问题。
2026-03-04 21:45:34
66
原创 Spring Ai 02 本地部署大模型
本文首先介绍了中文LLM模型的评测对比资源(GitHub链接),然后重点分析了四种主流本地部署模型引擎(Ollama、vLLM、LMStudio、TensorRT-LLM)的核心优势、Java集成难度和适用场景。其中详细说明了Ollama的安装使用流程,包括官网下载地址、常用命令(版本查询、模型启动/停止、列表查看等),以及基础使用方法示例。Ollama以其简单易用、模型丰富和跨平台特性成为快速原型开发和个人项目的优选方案。
2026-03-02 21:38:38
351
原创 Spring Ai 01 五大核心技术详解
SpringAI的核心技术主要包括:1)大语言模型(LLM),基于Transformer架构,通过预训练和微调实现语言理解和生成;2)提示词工程,通过清晰、结构化的指令优化AI输出;3)智能体技术,整合LLM、感知系统和执行器实现自主决策;4)检索增强生成(RAG),通过外接知识库提高回答准确性;5)模型控制平台(MCP),标准化AI工具交互协议。这些技术共同构成了SpringAI的核心框架,支持多样化的AI应用场景。
2026-02-28 23:22:26
1027
原创 session,token,cookies到底有什么区别和联系
session存储于服务器,可以理解为一个状态列表,拥有一个唯一识别符号sessionId,通常存放于cookie中。服务器收到cookie后解析出sessionId,再去session列表中查找,才能找到相应session,依赖cookie。cookie类似一个令牌,装有sessionId,存储在客户端,浏览器通常会自动添加。token也类似一个令牌,无状态,用户信息都被加密到token中,服务器收到token后解密就可知道是哪个用户,需要开发者手动添加。
2026-02-02 21:45:00
618
原创 HttpServletRequest的header里到底都有什么值???
这类是开发中根据业务需求添加的头Header 键名示例值含义adminToken后台管理系统的身份令牌token通用的用户身份令牌versionv1.0接口版本号设备类型的 Header 分为通用标准头请求专属头自定义头三类,标准头是 HTTP 协议规定的,自定义头由业务自行定义。(请求体格式)、User-Agent(设备标识)、/ 自定义token(身份认证)、Host(目标主机)。实战技巧:通过遍历所有 Header,request.getHeader("键名")
2026-01-30 10:43:11
691
原创 HttpServletRequestl类的常用方法
1、是封装客户端 HTTP 请求的核心对象,由 Servlet 容器自动创建,无需手动实例化。2、核心用途:获取请求参数、请求头、请求行信息,以及作为请求域对象共享数据。3、关键注意:POST 请求需提前设置编码解决中文乱码,请求域数据仅在当前请求有效,转发可共享、重定向不可共享。
2026-01-29 21:42:49
923
原创 在真实的项目中怎么使用git来上传你的代码?
我始终觉得把代码推送到远程仓库是一件极具仪式感的事,因此每次 push 前都会严格校验,确保代码逻辑无误、运行正常,唯有如此,才能让上传的代码为生产环境的稳定运行筑牢基础。
2026-01-28 17:34:35
620
原创 在真实的项目管理中,一般有几个环境?
在真实的企业级项目管理(尤其是研发、部署全流程)中,核心主流是 4 个基础环境但实际会根据项目规模、企业管控要求、行业合规性(如金融、政务),衍生出5-7 个细分环境,核心是为了在 “开发效率” 和 “线上稳定性” 之间做平衡,避免开发、测试、上线各环节的环境污染和风险。
2026-01-28 16:50:18
538
原创 == 和 equals 区别是什么?
Integer类在-128 到127之间做了缓存,所以新建的时候会在常量池中直接寻找,超出这个范围就需要new一个了。String在第一次会将它存储到常量池中,再次创建时需要先在常量池中寻找,如果有直接服用,没有才会new。首先==在基本类型中比较的是值是否相等,在对象中比较的是他的引用是否相等,其实就是两个地址是否一样。有一个比较热的考点 就是Integer类和String类的==比较 如下图。而equals主要用于两个对象之间,用于检测一个对象是否等于另一个对象的值。看object类中的实现。
2024-10-11 11:23:58
329
原创 力扣24. 两两交换链表中的节点
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。看到题目后使用虚拟节点,就不需要考虑第一个节点的特殊性了。根据这个步骤就可以写出代码了。
2024-09-29 20:51:49
293
1
原创 vue入门配置
该文件是用来展现页面的 但是这不是单页面应用,所以在<template>中加入<router-view>就可以在页面展示。每创建一个页面就需要在router包下的index.js中注册。
2024-08-27 10:29:20
456
原创 力扣135.分发糖果
n个孩子站成一排。给你一个整数数组ratings表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到1个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。请你给每个孩子分发糖果,计算并返回需要准备的最少糖果数目。
2024-07-18 21:26:12
320
原创 力扣238. 除自身以外数组的乘积
所以我们可以创建一个数组来存储后缀乘积,创建一个answer数组第一遍存储前缀,第二遍存储答案。之中任意元素的全部前缀元素和后缀的乘积都在。之中任意元素的全部前缀元素和后缀的乘积都在。之外其余各元素的乘积。时间复杂度内完成此题。
2024-07-08 22:32:42
245
原创 力扣380:O(1) 时间插入、删除和获取随机元素
/ 由于 2 是集合中唯一的数字,getRandom 总是返回 2。// 向集合中插入 2。// 从集合中移除 1 ,返回 true。// 向集合中插入 1。// getRandom 应随机返回 1 或 2。// 返回 false ,表示集合中不存在 2。// 2 已在集合中,所以返回 false。你必须实现类的所有函数,并满足每个函数的。
2024-07-08 21:54:18
459
原创 力扣274. H 指数
给你一个整数数组citations,其中citations[i]表示研究者的第i篇论文被引用的次数。计算并返回该研究者的h指数。
2024-07-08 21:20:09
268
原创 力扣13. 罗马数字转整数
数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做。说明白就是如果当前数字比前一个大就减去前一个数字,如果小就加上这个数字。给定一个罗马数字,将其转换成整数。,即为两个并列的 1。
2024-07-06 23:10:44
350
原创 力扣45. 跳跃游戏 II
跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1步,然后跳 3步到达数组的最后一个位置。向前跳转的最大长度。生成的测试用例可以到达。处,你可以跳转到任意。
2024-07-06 22:43:03
242
原创 力扣122. 买卖股票的最佳时机 II
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0。
2024-07-06 20:54:03
644
原创 力扣121. 买卖股票的最佳时机
在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回。设计一个算法来计算你所能获取的最大利润。在这种情况下, 没有交易完成, 所以最大利润为 0。买入这只股票,并选择在。
2024-07-05 22:07:04
624
原创 力扣189. 轮转数组
看给的数据,可以得出每一个换的位置都是 (i+k)%n的位置,所以只需要创建一个新数组,然后给他赋值即可。向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100],将数组中的元素向右轮转。
2024-07-05 21:40:32
276
原创 力扣169. 多数元素
采用摩尔投票法,核心就是正负抵消,如果有众数,则vote肯定>=0。你可以假设数组是非空的,并且给定的数组总是存在多数元素。,返回其中的多数元素。多数元素是指在数组中出现次数。由题意可知,该题是需要找出众数。
2024-07-05 21:13:24
256
原创 力扣80. 删除有序数组中的重复项 II
删除重复出现的元素,使得出现次数超过两次的元素。并在使用 O(1) 额外空间的条件下完成。看到题目第一个想到的就是快慢指针法。不要使用额外的数组空间,你必须在。,返回删除后数组的新长度。
2024-07-05 20:43:54
176
原创 若依框架页面新增时,富文本加入图片保存时出现:JSON parse error: Unexpected character (‘/‘ (code 47))...错误的解决方案
在使用若依框架的富文本框新增时,如果插入一个图片的时候会出现一个JSON parse error: Unexpected character ('/' (code 47)): maybe a (non-standard) comment?
2024-06-17 09:18:14
1923
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅