自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

流浪猫

流浪猫

  • 博客(88)
  • 资源 (1)
  • 收藏
  • 关注

原创 AI Agent和Agentic AI

AI代理与代理型人工智能的区别 摘要:AIAgent是专注于单一任务的智能实体,基于大模型执行预设任务;而AgenticAI是由多智能体组成的自主系统,能处理复杂任务并动态调整策略。AIAgent适合简单任务,效率高但自主性有限;AgenticAI擅长复杂决策,具备学习能力但系统更复杂。前者适用于邮件处理、客服等场景,后者更适合医疗决策、战略规划等需要协作的领域。两者在自主性、任务处理能力和系统架构上存在显著差异。

2025-07-14 17:49:56 171

原创 PagedAttention和Continuous Batching

PagedAttention和ContinuousBatching是优化大语言模型推理性能的两项关键技术。PagedAttention通过分页存储机制和内存共享特性,有效解决了长序列处理中的内存碎片问题,提升计算效率。ContinuousBatching采用动态批处理策略,在生成过程中实时调整批次,显著提高吞吐量和资源利用率。两项技术相辅相成,PagedAttention优化内存管理,ContinuousBatching提升计算效率,共同应用于vLLM等推理框架,为自然语言处理等领域的实时交互系统提供高效解

2025-07-08 11:43:13 995

原创 ReAct(Reasoning and Acting)

ReAct框架:融合推理与行动的AI决策方法 ReAct是一种结合推理(Reasoning)和行动(Acting)的AI框架,通过交替思考与交互来解决复杂问题。其工作流程包括:分析当前状况、执行外部交互(如查询数据库)、观察结果并循环这一过程。该框架的优势在于提升任务性能、增强决策可解释性,并减少错误信息生成。ReAct已成功应用于问答系统(HotPotQA)、事实验证(FEVER)等场景,通过动态调整策略显著提高任务成功率。该框架通过提示工程实现,为语言模型提供了更高效可靠的问题解决途径。

2025-07-08 11:25:11 316

原创 RNN和Transformer区别

RNN与Transformer架构对比:RNN采用循环结构逐时间步处理序列,适合短文本任务但存在梯度消失问题;Transformer基于注意力机制并行处理,能高效捕捉长距离依赖但计算成本较高。RNN适用于简单分类和语音识别,Transformer更适合机器翻译、文本生成等复杂任务。两种架构各具优势,选择取决于具体应用场景和资源条件。

2025-07-04 14:21:45 493

原创 RNN和LSTM

RNN和LSTM是处理序列数据的两种神经网络。RNN通过隐藏状态处理序列,但存在梯度消失/爆炸问题,难以学习长距离依赖。LSTM通过输入门、遗忘门和输出门控制信息流,有效解决了RNN的缺陷,能捕捉更长距离的依赖关系,在NLP任务中表现优异,但计算复杂度更高。LSTM更适合处理需要长期记忆的任务,而RNN适用于较简单的序列建模。

2025-07-01 23:51:52 835

原创 过拟合与欠拟合

摘要: 过拟合指模型在训练数据上表现优异,但在新数据上效果差,通常因模型过于复杂或数据不足导致。欠拟合则是模型表现普遍不佳,源于模型过于简单或特征不足。过拟合可通过增加数据、简化模型、正则化等方法缓解;欠拟合则需增强模型复杂度或优化特征。评估时,对比训练集与测试集表现,或使用交叉验证和学习曲线,可有效识别过拟合(训练误差低、验证误差高)和欠拟合(两者误差均高)。平衡模型复杂度与数据特征是提升泛化能力的关键。

2025-06-25 11:07:20 327

原创 Transformer

Transformer模型引入多头注意力机制是为了捕捉文本数据在不同子空间中的多样化特征。与单一注意力相比,多头注意力通过将输入分割成多个子空间,每个注意力头可独立学习不同特征(如语法、语义等),显著提升了模型容量、灵活性和泛化能力。虽然理论上可能存在注意力头冗余,但通过正则化、数据增强和结构优化等方法可以有效避免。多头机制在特征提取全面性和模型表达能力上明显优于单一注意力,成为处理复杂NLP任务的关键设计。

2025-06-24 19:25:06 322

原创 RAG和微调有什么区别

微调(Fine-Tuning)和RAG(Retrieval-Augmented Generation)是两种主要的语言模型优化方法。微调通过特定任务数据调整预训练模型权重,适用于文本分类、翻译等有标注数据的任务,简单但依赖大量数据。RAG结合外部知识库检索增强生成能力,适合问答、对话等需要丰富知识的场景,灵活性高但实现复杂。微调针对性强但泛化有限,RAG知识丰富但检索开销大。选择取决于任务需求:数据充足选微调,需外部知识则用RAG。

2025-06-24 19:13:32 1051

原创 Java图片转word

【代码】Java图片转word。

2024-11-04 11:20:45 563

原创 Java实现pdf转图片

【代码】Java实现pdf转图片。

2024-11-04 09:41:38 501

原创 Java实现图片转pdf

该方法可以选择多个图片是否合并为一个pdf输出,也可以选择图片为横向或者纵向输出,也可以选择pdf页面为A3或者A4。

2024-11-01 17:18:40 976

原创 pdf转为txt文本格式并使用base64加密输出数据

【代码】pdf转为txt文本格式并使用base64加密输出数据。

2024-10-28 10:55:23 571

原创 txt数据转为pdf格式并使用base64解密输出

【代码】txt数据转为pdf格式并使用base64解密输出。

2024-10-28 10:51:42 565

原创 回表、聚簇索引和非聚簇索引

聚集索引(Clustered Index)是一种对表中数据进行物理存储排序的索引。它决定了数据在磁盘上的物理存储顺序。具体来说,聚集索引按照索引键的顺序来存储表中的数据,也将聚集索引的叶子节点称为数据页。也就是说,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能有一个聚集索引,因为数据行的物理顺序只能有一种。一般建表会用一个自增主键做聚簇索引,没有的话MySQL会默认创建,但是这个主键如果更改代价较高,故建表时要考虑自增ID不能频繁update这点。

2024-10-23 09:35:21 1067

原创 MVCC机制和BufferPool

MVCC是一种用于数据库管理系统(DBMS)的并发控制机制,旨在解决多用户环境下对同一数据进行并发读写时可能出现的数据不一致性和争用问题。

2024-10-22 10:55:00 469

原创 MySql锁分类

当前写操作没有完成前,它会阻断其他写锁和读锁,数据修改操作都会加写锁,查询也可以通过for update加写锁:又称I锁,针对表锁,主要是为了提高加表锁的效率,是mysql数据库自己加的。当有事务给表的数据行加了共享锁或排他锁,同时会给表设置一个标识,代表已经有行锁了,其他事务要想对表加表锁时,就不必逐行判断有没有行锁可能跟表锁冲突了,直接读这个标识就可以确定自己该不该加表锁。特别是表中的记录很多时,逐行判断加表锁的方式效率很低。而这个标识就是意向锁。

2024-10-21 10:07:05 806

原创 最左匹配原则以及索引下推

最左优先,以联合索引最左边的为起点任何连续的索引都能匹配上。同时遇到范围查询会停止(如:>、 < 、between、like)1、联合索引第一个字段如果用范围查找不会走索引结论:联合索引第一个字段就用范围查找不会走索引,mysql内部可能觉得第一个字段就用范围,结果集应该很大,回表效率不高,还不如就全表扫描2、强制走索引结论:虽然使用了强制走索引让联合索引第一个字段范围查找也走索引,扫描的行rows看上去也少了点,但是最终查找效率不一定比全表扫描高,因为回表效率不高3、覆盖索引优化。

2024-10-18 11:37:29 383

原创 B Tree 和B+Tree的区别

索引是帮助mysql高效获取数据的排好序的数据结构。B+Tree是B-Tree的变种。

2024-10-18 11:32:34 425

原创 explain执行计划

id不是唯一标识,是执行的优先级,id越大,优先级越高。id如果想等,谁在前面谁先执行。

2024-10-14 10:30:42 1334

原创 mysql的表锁和行锁

InnoDB行锁是通过索引上的索引项来实现的,这一点MySQL与Oracle不同,后者是通过在数据中对相应数据行加锁来实现的。

2024-10-14 10:17:13 958

原创 索引失效的场景

索引并不是时时都会生效的,比如以下几种情况,将导致索引失效:1、如果条件中有or,即使其中有部分条件带索引也不会使用(这也是为什么尽量少用or的原因),注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引2、对于多列索引,不是使用的第一部分,则不会使用索引3、like查询是以%开头4、存在索引列的数据类型隐形转换,则用不上索引,比如列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引5、where 子句里对索引列上有数学运算,用不上索引。

2024-10-14 10:12:45 364

原创 MySQL的索引类型

在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的:MyISAM和InnoDB存储引擎:只支持BTREE索引, 也就是说默认使用BTREE,不能够更换MEMORY/HEAP存储引擎:支持HASH和BTREE索引Mysql索引的数据结构目前主要有以下几种:FULLTEXT,HASH,BTREE,RTREE。

2024-10-14 10:10:00 500

原创 AOP和动态代理

JDK创建代理对象效率较高,执行效率较低;CGLIB创建代理对象效率较低,执行效率高。JDK动态代理机制只能对实现接口的类生成代理,通过反射动态实现接口类;CGLIB则使用的继承机制,针对类实现代理,被代理类和代理类是继承关系,所以代理类是可以赋值给被代理类的,因为是继承机制,不能代理final修饰的类。

2024-10-12 14:48:48 419

原创 Spring事务的传播行为的7种类型

Spring默认的传播行为是PROPAGATION_REQUIRED,即如果当前存在事务,即加入该事务;如果当前没有事务,则新建一个新的事务。因此只开启了一个事务。三个加入,两个挂起,一个抛异常,一个嵌套。

2024-10-12 14:40:22 248

原创 Spring的启动过程

通常,我们说的Spring启动,就是构造ApplicationContext对象以及调用refresh()方法的过程。5. 把用户定义的ApplicationListener对象添加到ApplicationContext中,等Spring启动完了就要发布事件了。4. 因为ApplicationContext还支持事件机制,所以还需要初始化ApplicationEventMulticaster对象。3. 因为ApplicationContext还支持国际化,所以还需要初始化MessageSource对象。

2024-10-12 13:53:58 294 1

原创 Spring中使用的设计模式

在Spring的配置文件中,当我们定义一个Bean而没有指定其作用域时,它默认是单例的。这意味着无论我们多少次请求这个Bean,Spring都会返回同一个实例。这有助于节省系统资源,因为相同的对象只会被创建一次。

2024-10-12 13:50:20 899

原创 Spring中Bean的生命周期

注:以上工作完成以后就可以应用这个Bean了,那这个Bean是一个Singleton的,所以一般情况下我们调用同一个id的Bean会是在内容地址相同的实例,当然在Spring配置文件中也可以配置非Singleton,这里我们不做赘述。9.当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean这个接口,会调用那个其实现的destroy()方法;10.最后,如果这个Bean的Spring配置中配置了destroy-method属性,会自动调用其配置的销毁方法。

2024-10-10 09:51:08 370

原创 JVM对象创建和内存分配机制

初始化零值之后,虚拟机要对对象进行必要的设置,例如这个对象是哪个类的实例、如何才能找到类的元数据信息、对象的哈希码、对象的GC分代年龄等信息。对象头的另外一部分是类型指针,即对象指向它的类元数据的指针,虚拟机通过这个指针来确定这个对象是哪个类的实例。”(Free List)如果Java堆中的内存并不是规整的,已使用的内存和空 闲的内存相互交错,那就没有办法简单地进行指针碰撞了,虚拟机就必须维护一个列表,记 录上哪些内存块是可用的,在分配的时候从列表中找到一块足够大的空间划分给对象实例,并更新列表上的记录。

2024-10-10 09:37:49 1036

原创 类加载器和双亲委派

双亲委派模式要求除了顶层的启动类加载器之外,其余的类加载器都应该有自己的父类加载器,但是在双亲委派模式中父子关系采取的并不是继承的关系,而是采用组合关系来复用父类加载器的相关代码。如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中,只有当父加载器反馈自己无法完成这个加载请求(它的搜索范围中没有找到所需的类)时,子加载器才会尝试自己去加载。

2024-10-10 09:28:19 918

原创 Java的类加载机制

jvm虚拟机加载并解析类的整个过程

2024-10-10 09:04:07 1006

原创 jvm垃圾回收算法

标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。在标记阶段首先通过根节点(GC Roots),标记所有从根节点开始的对象,未被标记的对象就是未被引用的垃圾对象。然后,在清除阶段,清除所有未被标记的对象。适用场合:存活对象较多的情况下比较高效适用于年老代(即旧生代)缺点:容易产生内存碎片,再来一个比较大的对象时(典型情况:该对象的大小大于空闲表中的每一块儿大小但是小于其中两块儿的和),会提前触发垃圾回收扫描了整个空间两次(第一次:标记存活对象;第二次:清除没有标记的对象)

2024-10-09 17:52:52 340

原创 jvm垃圾收集器简介

串行垃圾收集器,是指使用单线程进行垃圾回收,垃圾回收时,只有一个线程在工作,Java应用中的所有线程都要暂停,等待垃圾回收的完成。这种现象称之为STW(Stop-The-World),一般的javaweb应用中不会采用这种收集器。

2024-10-09 17:48:08 1014

原创 HashMap如何put一个数值

8.如果是链表,就遍历链表,把node放在最后一位,放完之后需要去判断链表的长度是否超过8,如果超过就需要判断是否将链表转换为红黑树,当数组容量小于64的时候,只会对数组进行扩容,如果数组容量大于64,才会进行链表转红黑树。2.在put的时候判断数组是否存在,如果不存在调用resize方法创建默认容量为16的数组。3.确定node在数组中的位置,根据hash值和数组的最大索引值进行与运算得到索引的位置。5.如果有元素,判断key是否完全相等,如果相同,把原来的node赋值给一个变量。9.返回被覆盖的值。

2024-10-09 17:37:12 173

原创 HashMap为什么引入了红黑树

二叉查找树是为了解决链表查找的性能问题,平衡二叉树是为了解决二叉查找树退化为链表的情况,而红黑树是为了解决平衡树在插入、删除等操作需要频繁调整的情况。

2024-10-09 17:34:28 914

原创 判断时间是否有交叉重叠

Java判断时间是否有交叉重叠。

2024-08-07 17:21:47 300

原创 使用pinyin4j解决中文排序时候多音字问题

使用pinyin4j解决中文排序时候多音字问题。

2024-08-05 18:42:26 548

转载 单体项目新增模块后swagger页面不显示新增api

单体项目新增模块后swagger页面不显示新增api

2024-07-22 11:41:41 410

原创 设计模式(四)、策略模式

策略模式定义了一系列算法或策略,并将每个算法封装在独立的类中,使得它们可以互相替换。通过使用策略模式,可以在运行时根据需要选择不同的算法,而不需要修改客户端代码。策略模式通过将算法与使用算法的代码解耦,提供了一种动态选择不同算法的方法。客户端代码不需要知道具体的算法细节,而是通过调用环境类来使用所选择的策略。环境(Context):维护一个对策略对象的引用,负责将客户端请求委派给具体的策略对象执行。环境类可以通过依赖注入、简单工厂等方式来获取具体策略对象。

2024-04-29 11:46:48 1294 1

原创 设计模式(三)、模板方法设计模式

模板方法模式(Template Method Pattern):定义一个操作中算法的框架而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤模式结构模板方法模式包含如下角色:AbstractClass: 抽象类ConcreteClass:具体子类模式分析模板方法(Template Method)基本方法(Primitive Method)抽象方法(Abstract Method)具体方法(Concrete Method)

2024-04-29 10:42:02 917 3

原创 贪心算法入门

贪心算法(Greedy Algorithm)是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。也就是首先选取局部最优,从局部最优推出全局最优。举例有一堆不同面额的钞票,要从中取十次,要求最后的总金额最大。我们当然是每次都去取最大面额的钞票,最终的总金额才是最大。特点贪心算法的题目有两种极端:第一种是比较简单的,这一种在解答时候会觉得就是常识,怎么还需要算法呢。第二种就是复杂类的。在此说明的原因是希望各位不要轻视贪心算法,这个算法没有那么简单。

2024-03-22 10:18:13 750 1

浏览器的一个广告拦截器插件

一个浏览器的广告拦截器,如果杀毒软件之类的也无法阻拦烦人的广告的话,可以试试这个插件,很好用,本人亲测。让你在使用电脑时不再分心。强烈推荐。

2023-03-25

erlang25.0.3版本

内容概要:该软件为erlang的目前最新版 使用场景:如果使用rabbitmq的3.9以上版本,也许你会需要这个安装包。 其他说明:下载一个感觉时间好长,所以我就发布到这里了,各位有需要的可以下载哦。我会把rabbitmq目前的最新版本也上传上来,各位如果有需要也可以下载使用。从官网下载erlang感觉时间真的会很长。

2022-07-20

空空如也

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

TA关注的人

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