- 博客(233)
- 收藏
- 关注
原创 数据库中容易混淆的关键字alter/update...
总结:DROP = 删除表(结构+数据) DELETE = 删除数据(保留结构,支持条件) TRUNCATE = 清空数据(保留结构,重置ID)是 DML(Data Manipulation Language,数据操作语言)命令,用于。是 DDL(Data Definition Language,数据定义语言)命令,用于。(表、数据库、视图、索引等),包括结构和数据。UPDATE(修改表数据)常见操作。,保留表结构,重置自增ID。truncate常见操作。delete常见操作。
2025-12-04 14:19:49
771
原创 服务RejectedExecutionException问题对Semaphore的思考
服务拒绝报错时,以为是服务负载太大导致,查看cpu和gc情况,并没有异常,定位到方法后,让AI分析方法中存在的异常,存在严重的信号量泄漏问题。
2025-10-29 19:32:21
798
原创 Spring-AI项目中参数配置
在 Spring AI 框架中,advisors 参数是一个强大的增强机制,允许您在大模型调用过程中添加额外的处理逻辑和上下文信息。它的设计灵感来自于 Spring AOP(面向切面编程)的概念,允许在不修改核心代码的情况下扩展功能。:1 - 模型上限(如 GPT-4 为 8192,DeepSeek 可能有不同限制)第二种情况:ChatClient Bean 定义中设置默认模型。:0.0 - 2.0(通常不超过 1.0)第一种情况:代码中指定了模型。Advisors 的作用。
2025-09-24 11:36:42
884
原创 Spring-AI简单实践
该项目从著名的 Python 项目(例如 LangChain 和 LlamaIndex)中汲取灵感,但 Spring AI 并非这些项目的直接移植,该项目的成立基于这样的信念:下一波生成式 AI 应用将不仅面向 Python 开发人员,还将遍及多种编程语言。,是阿里云通义系列模型及服务在 Java AI 应用开发领域的最佳实践,提供高层次的 AI API 抽象与云原生基础设施集成方案,各大公司在Spring-AI的基础上都有一套快速开发AI应用的框架。3.2 Spring-AI Ailibaba创建会话。
2025-09-23 21:14:46
618
原创 Redis框架详解
比如哨兵B和C判定主节点“主观下线”(即自身认为主节点可能下线)后,会相互询问对方是否也认为主节点下线,哨兵C表示认同,而哨兵A则判定主节点在线且不认同其他哨兵的观点。为了减少一个哨兵节点对主服务器判断的失误,所以,为了减少误判的情况,哨兵在部署的时候不会只部署一个节点,而是用多个节点部署成哨兵集群(最少需要三台机器来部署哨兵集群),通过多个哨兵节点一起判断,就可以就可以避免单个哨兵因为自身网络状况不好,而误判主节点下线的情况。有序集合类型:元素依然是唯一的,不允许重复,但是每个元素是有顺序的。
2025-09-14 22:10:34
1124
原创 算法题2:动态规划
基本步骤定义状态明确问题的状态表示(例如dp[i]或dp[i][j]的含义)。状态转移方程描述如何从子问题的解推导出当前问题的解(递推关系)。初始化边界条件设置初始状态的值(如dp[0] = 0计算顺序确定填表顺序(自底向上或自顶向下)。返回结果从状态表中提取最终解。
2025-09-03 21:10:51
499
原创 本地部署DeepSeek实战
最近想通过Spring-AI来整个大模型的应用,调用其它公司的大模型平台都需要申请API Key、Secret Key,模型调用都需要按调用次数/Token 收费,有个别平台有免费试用期和免费额度。如果想免费调用大模型,最好是自己本地部署运行开源模型,减少资金消耗。
2025-08-22 20:37:27
793
原创 用例完备性1:用例模板
除了参考需求文档和技术方案文档之外,很多人是根据经验,采用探索式方法发现更多的用例,其实对于测试人员来说,负责的业务迭代特点和迭代方向都比较固定,用例有一部分功能是可以固化形成模板。例如我自己负责的业务方向是搜索引擎,业务特点是高并发低延迟,迭代方向主要是增加入口流量、增加供给、提高转化率。服务端的用例比较相似,所以根据以往的用例设计总结出一套用例模板。如何保障需求测试前写的用例是完善的,无遗漏的?只有这样,才能在有限的测试资源下,最大限度地降低软件上线后的质量风险。
2025-08-21 20:27:53
306
原创 算法题1:前缀和解法
对数据计算前缀和过程中,可以将前缀和放入Map中,Map的key存储前缀和,value存储前缀和的个数,Map中找到sum[j]-goal的值时,value个数则代表满足条件的子数据个数。前缀和:是一种常用的预处理技术,它可以在O(1)时间内快速计算数组任意区间的和。在Java中,可以通过创建一个新的数组来存储前缀和,然后利用该数组快速获取任意区间元素的和。根据和找子数组,只需要计算出每个数组对应位置的前缀和,如果sum[j]-sum[i]==goal,那么从i到j之间的数组就是满足条件的。
2025-08-14 14:58:40
502
原创 美团NoCode-零代码应用生成平台使用
NoCode-零代码应用生成平台平台功能:NoCode 是一款无需编程背景和经验,通过自然语言和对话形式,即可快速生成应用的平台。可帮助不同角色以"零代码"的方式创建个人提效工具、产品原型、可交互页面等,降低开发门槛,实现创意释放。核心能力包括“对话即成页面”、“精准定位修改”、“打通内部系统”和“一键部署分享”。
2025-08-11 20:58:03
467
原创 MCP学习与实践
MCP的全称是Model Context Protocol,即「模型上下文协议」,目的是为LLM提供标准化的上下文信息传递方式,从而实现AI智能体与外部数据及工具的结合。是Anthropic推出的AI万能插座。标准化AI模型接入协议,通过自然语言描述工具调用逻辑,实现模型与外部数据/工具的交互。
2025-08-10 23:47:38
1082
原创 一文明白AI、AIGC、LLM、GPT、Agent、workFlow、MCP、RAG概念与关系
引言:AI、大语言模型(LLM)、Agent、MCP、RAG等各种概念层出不穷,若不深入了解,记忆混淆,本文会详细讲解这些概念和它们之间的关系。
2025-07-14 20:50:58
1701
原创 Mysql中的日志-undo/redo/binlog详解
在缓存一致性的方法中,有一种是用binlog同步消息,完成缓存的同步,提高了可靠性。这里详细学习一下数据库中的三种日志。
2025-07-09 21:29:15
858
原创 如何实现div鼠标拖拽改变宽高
可以通过鼠标拖拽来改变两个编辑框的高度和宽度,同时两个框的大小需要能联动变化,两个编辑框的高度一致,宽度总和不变。入参与出参两个编辑框都是固定的,用户反馈不够灵活,希望能像postman一样可以调整宽度和高度。最近做了一个接口调用工具,request与response分别占用两个编辑框,如下图。
2025-07-04 13:20:04
464
原创 一个慢查询带来的思考-mysql的索引
背景:负责的项目中慢查询数量报警,通过数据库分析诊断平台可以看出有一条sql命令满查询数量超过阈值,是一个分页查询,需要查询某个范围内的数据,使用limit,深度分页导致慢查询。分析:这条查询语句一直都没有问题,最近突然有问题,发现最近几次使用的数据集合都是很大的,导致每次分页limit偏移量较大,平均查询时间>2s。explain分析执行计划,使用了非唯一索引。即使有索引,索引只能加速定位,但无法直接“跳转到第 N 条”(因为索引存储的是键值,而不是行号)。
2025-06-23 20:27:30
785
原创 常见Lambda表达式使用方法
平时写代码时会用到Lambda表达式,有些会在代码提示下,真正记下来的比较少,本文对常用的Lambda表达式进行汇总。Lambda表达式是什么?是一种在编程语言中用于创建匿名函数的简洁语法结构。它允许你快速定义一个小型的、一次性使用的函数,而无需显式命名或定义完整的函数结构。(即只有一个抽象方法的接口,如RunnableComparator。
2025-06-21 18:05:41
400
原创 测试七诫·质量经
《高效测试工作法则》摘要:测试工作需遵循"找、规、量力"三原则,强调需求明确(要求PRD文档化)、流程规范(降低80%风险)和质量优先(质量是1效率是0)。建议善用技术(自动化率提升10%可降7%缺陷逃逸率)、建立检查清单、明确责任边界。核心要义是:明规则、守底线、巧用技、重积累,在保证质量根基的前提下提升效率。
2025-05-27 10:59:29
173
原创 vue中常见知识点区别
1、import与@importscript标签 中的import是js的语法, 是在js中去引用css文件。style标签 中的@import是 stylus的语法,是在css中引用css文件。2、export、export default与importexport和export default都属于导出的意思,可以在别的文件或模块中通过import将其导入,从而可以对其使用。export可以使import一次导入多个;export default只能单独导入一个。区别:一个模块只能有
2021-07-11 14:57:35
440
1
原创 认识APM、javaagent、hadoop
一、基本概念1 APM:1.1简介:APM (应用性能管理) - Application Performance Management & Monitoring在信息科学和系统控制领域,APM致力于监控和管理应用软件性能和可用性。通过监测和诊断复杂应用程序的性能问题,来保证软件应用程序的良好运行(预期的服务)1.2 APM核心功能APM被形象的称为应用程序的私人医生,越来越收到青睐,比起通过日志方式记录关键数据显然要更加实用,APM主要包含如下核心功能:1.应用系统存活检测2...
2020-11-21 13:21:52
549
原创 tair基本原理
一、简介Tair是一个高性能、分布式、可扩展、高可靠的Key-Value nosql结构存储系统,专注于高速缓存场景二、基本概念1、configID唯一标识一个tair集群,每个集群都有一个对应的configID,在当前的大部分应用情况下configID是存放在diamond中的,对应了该集群的configserver地址和groupname。业务在初始化tairclient的时候需要配置此ConfigID2、Namespace(area)是tair中分配给应用的一个内存或者持久化.
2020-11-08 21:41:32
1322
原创 Junit中使用线程池不执行任务代码
1、在test中使用线程池发送MQ,没有报错,没有执行线程池中的代码。2、查资料,junit框架只要主线程结束完成,单元测试就会关闭,导致线程池中的线程没有执行代码就被销毁关闭了,可以在主线程中sleep一段时间,或者用main方法。...
2020-06-28 15:16:14
1362
1
原创 Java定时任务cron表达式
1、完整的cron表达式:由7位以空格分隔的时间元素组成,从左到右分别为:秒、分、时、日期、月份、星期几、年份。
2020-06-27 21:15:22
1953
原创 JVM分区与堆对象分配
一、JVM分区1、java堆(线程共享)Java堆是被所有线程共享的一块区域,它也是Java虚拟机管理的内存中最大的一块,它在虚拟机启动时创建;Java堆唯一的目的就是存放对象实例,几乎所有的对象实例的都在这里分配内存;Java堆是垃圾收集器管理的主要区域,因此很多时候也被称为GC堆;Java堆可以处于物理上不连续的内存空间中,只要逻辑上连续即可,在实现时既可以是固定大小也可以是可扩展的,如果堆中没有内存完成实例分配,并且堆也无法再扩展时,将会抛出OutOfMemory异常;2、方法区(
2020-06-22 10:52:14
529
原创 比较器Comparable与Comparator区别
1、Comparable是可比较的,是修饰类的,类实现该接口中的方法compareTo(),即该类是可比较的,有顺序的。在该类可以和自己比较。2、Comparator是比较器,是一个比较工具方法,可以直接继承该接口实现compare()方法,compare方法可以两个对象进行对比。如果是第一种方法的话,可以直接用Collections.sort(List)方法,这里sort默认的排序就是类中实现的comparaTo()方法中的逻辑。如果是第二种方法的话,直接实现接口方法,如下:此时Collect
2020-06-22 08:16:38
467
原创 postman的使用与环境变量设置
1、postman批量顺序执行一批请求方式首先创建一个Collections,将请求保存到该Collections中,在Collections,点击run,可以导入文件,将某些字段参数化成功的绿色,失败的是红色,成功失败的个数是断言的成功与失败,我没有设置断言,所以都是0。2、设置环境变量新增环境,并添加一个环境变量token值,这样在这个环境中的请求就可以用{{token}}获取该环境变量需要对该环境变量赋值,获取token的接口中对结果进行处理,获
2020-06-16 15:33:12
589
原创 lambda表达式与常用方法
1、什么是lambda,是java8新的特性,是一个匿名函数,可以非常简洁的实现接口。 lambda对接口的要求:接口里面的抽象方法只能够存在一个,或者被@FunctionalInterface修饰接口,或者接口中有一个抽象方法,其他的都是dafault或者静态方法。2、Lambda定义的三个语法: ...
2020-06-14 11:05:19
1762
原创 Java异常与throw与throws及注意事项
一、基础知识1、处理异常,java提供了一个优秀的解决方案:异常处理机制。java把异常当作对象来处理,所有的异常都是由Throwable继承而来,但在下一层立即分解为两个分支:Error和Exception2、Error类:这类异常由java虚拟机生成并抛出,大多数错误与代码编写者无关,不能被程序员通过代码来处理。发生这种异常时,java虚拟机一般会选择关闭线程。Error异常很少出现,所以我们更应该关注Exception分支下异常。Exception类:这类异常通常可以被程序处理,也
2020-06-14 10:38:42
561
原创 IDEA中强大的debug功能
1、基本用法1)Show Execution Point(+F10):如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行。 2)Step Over(F8):步过,一行一行地往下走,如果这一行上有方法不会进入方法。 3)Step Into (F7):步入,如果当前行有方法,可以进入方法内部,一...
2020-06-14 09:30:20
343
原创 正则表达式知识与使用
一、元字符1)".",点用于匹配除换行符意外的任意字符2)"w",匹配字母或数字或下划线或汉字3)"s",匹配任意空白符4)"d",匹配数字5)"",匹配单词的开始或结束6)"^",匹配字符串的开始7)"$",匹配字符串的结束二、重复限定符(量词)1)"*",重复零次或更多次2)"+",重复一次或更多次3)"?",重复零次或一次4)"{n}",重复n次5)"{...
2020-06-14 09:19:58
210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅