自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Agent Skills

Agent Skills 不是架构层面的概念,而是。

2026-02-27 21:05:11 559

原创 大模型学习

正确理解:学习率:控制每次参数更新的步长大小(迈多大步子)batch_size:控制积累多少数据后更新一次(多久迈一步)epoch:控制整个数据集训练多少轮(总共走多少轮)所以学习率影响的不是"多少轮更新一次",而是"每次更新时,参数改变多少这是一个关键的区分!

2025-12-02 18:15:33 417

原创 大模型学习4

LlamaIndex 是一个用于 LLM 应用程序的,用于注入,结构化,并访问私有或特定领域数 据。我们知道数据存在的形式有很多种,比如嵌入到网页中、以api接口的形式存在、以文档的形式存在。如何让AI与这些多样化的数据对接,这是之前AI应用的一个复杂点。。

2025-12-02 18:01:33 422

原创 大模型学习3

深度学习(Deep Learning)因其计算复杂度或参数冗余,在一些场景和设备上限制了相 应的模型部署,需要借助模型压缩、优化加速、异构计算等方法突破瓶颈。

2025-11-07 18:16:12 390

原创 大模型学习2

lmdeploy serve api_server 本地模型地址。python调用本地部署的接口,端口地址23333。安装完LMDeploy的conda环境以后。注意前置条件是安装了conda等环境。运行python脚本调用接口。使用:以下命令部署本地模型。

2025-10-27 18:08:51 357

原创 大模型学习

定义下游任务(增量模型)# 设计全连接网络,实现二分类任务#768表示bert的输出结果是768,2表示通过这个下游任务后输出结果为2。# 使用模型处理数据(执行前向计算)# 由于我们这里是增量微调,只训练增加的数据,因此,冻结Bert模型的参数,让其不参与训练# 把我们需要冻结的参数放在该代码块里面它就不会参与训练# 增量模型参与训练,增量模型就是我们刚刚设计的fc。

2025-08-18 17:07:21 1027

原创 Java处理视频思路

6.视频转码的逻辑大概就是,由于数据库中任务表里已经存储了该视频在Minio中的信息,就可以从Minio中把该视频下载下来。最后,把对应视频任务的处理结果修改为已完成!2.当视频成功上传到分布式文件系统中 (如Minio、oss),将视频信息保存到数据库的任务表中,表中每一条数据都是一个视频转码任务的处理情况 (包括视频转码状态,完成/未完成)5.执行器执行的任务确保都是未进行转码的视频,确保幂等性 (某个视频任务被重复调度后,不会导致某个视频被重复转码),如果该视频任务是未处理的,执行器就处理该任务。

2024-12-25 15:48:57 1023 1

原创 树形表查询

针对于数据库中的树形表:例如该表,这里有两种字段,一个自身id,一个父节点id(parentid)。对于此类树形表,我们一般有两种查询方式。

2024-12-16 17:49:19 1018

原创 自定义线程池的使用

/自定义一个线程池/*** 构造方法,用于初始化线程池。* @param corePoolSize 核心线程池的大小* @param maximumPoolSize 最大线程池的大小* @param keepAliveTime 非核心线程空闲存活时间* @param unit 存活时间单位* @param queueCapacity 任务队列容量*///防止参数为负数unit,//初始线程池关闭状态为false/*** 配置线程池的线程工厂和拒绝策略。*/

2024-10-29 10:06:49 1385

原创 Java面试题——计网篇2

的概念在这里被解释为:对同一个资源的多次请求应该产生相同的副作用。因此,使用GET请求进行数据的增删改操作是不恰当的,因为GET请求是幂等的,网络不佳时可能会重试,导致重复操作和副作用。而POST请求则适用于这类操作,因为它不是幂等的,可以正确处理重复提交的情况。

2024-10-26 17:01:05 351

原创 Java面试题——微服务篇

提供了两种方式:1,创建类实现IRule接口,可以指定负载均衡策略,这个是全局的,对所有的远程调用都起作用。2,在客户端的配置文件中,可以配置某一个服务调用的负载均衡策略,这个是局部生效,只是对配置的这个服务生效远程调用。

2024-10-26 17:00:40 1544

原创 设计模式——工厂模式

工厂模式分为简单工厂、工厂方法、抽象工厂模式。

2024-10-25 16:55:23 198

原创 设计模式——策略模式

策略模式是一种行为型设计模式,它定义了一系列算法,将每个算法封装起来,并使它们可相互替换。这使得算法的变化独立于使用算法的客户端。简而言之,策略模式允许在运行时选择算法,而不是在编译时固定使用某种算法。常见的策略模式,每有一种策略,就会有一个实现类。这样的话可能就会导致实现类过多的情况。这里不详细说常见策略模式的写法了。直接因此枚举类+map实现策略模式。优雅的实现策略模式,可以通过map+枚举类实现。

2024-10-25 16:55:08 375

原创 AQS源码分析

总结一下吧。在并发环境下,加锁和解锁需要以下三个部件的协调:锁状态。我们要知道锁是不是被别的线程占有了,这个就是 state 的作用,它为 0 的时候代表没有线程占有锁,可以去争抢这个锁,用 CAS 将 state 设为 1,如果 CAS 成功,说明抢到了锁,这样其他线程就抢不到了,如果锁重入的话,state进行 +1 就可以,解锁就是减 1,直到 state 又变为 0,代表释放锁,所以 lock() 和 unlock() 必须要配对啊。然后唤醒等待队列中的第一个线程,让其来占有锁。

2024-10-24 11:01:37 1515

原创 RabbitMQ中的交换机类型

另一方面,知道如何处理消息,例如递交给某个特别队列、递交给所有队列、或是将消息丢弃。在Fanout模式中,一条消息,会被所有订阅的队列都消费。但是,在某些场景下,我们希望不同的消息被不同的队列消费。,因此如果没有任何队列与Exchange绑定,或者没有符合路由规则的队列,那么消息会丢失!不过队列一定要与交换机绑定。消息的发送方在 向 Exchange发送消息时,也必须指定消息的。Exchange不再把消息交给每一个绑定的队列,而是根据消息的。队列与交换机的绑定,不能是任意绑定了,而是要指定一个。

2024-10-24 11:01:08 977

原创 ThreadLocal内存泄漏面试题

可以看到,在有参remove()方法中,会通过threadLocalHashCode计算出Entry对象在Entry数组中的位置,并获取出对应的Entry对象,如果Entry对象不为空,并且Entry对象中的Key等于传入的ThreadLocal对象,则清除对应的Key,并且调用expungeStaleEntry()方法。在实际项目中,如果为每个任务的执行都开启一个线程的话,是非常耗费系统资源的,所以,在实际项目中,我们很少直接使用Thread类来创建线程,而是使用线程池来执行对应的任务。

2024-10-24 11:00:28 1806 1

原创 MySql中的锁

例如,SELECT * FROM t WHERE c1 BETWEEN 1 and 10 FOR UPDATE;会阻止其他事务将 1 到 10 之间的任何值插入到 c1 字段中,即使该列不存在这样的数据;因为这些值都会被锁定。

2024-10-22 16:29:46 1405

原创 Java面试——场景题

1.如何分批处理数据?

2024-10-22 09:34:33 4515

原创 Java动态代理示例代码

【代码】Java动态代理示例代码。

2024-10-22 09:34:16 346

原创 MySQL中的redo log 和 undo log

当我们操作增删改的时候,会有大量的update等语句,如果我们同步刷新,对磁盘IO次数太多了,每执行一条sql可能就要进行一次连接数据库。如果没有,就会把磁盘中的数据(某一个数据页的数据)加载到缓冲池中。现在内存中的数据页被操作完了,但还没同步到磁盘中 (此时这个数据页称为脏页),这个时候服务器宕机了,同步失败了。内存中的数据可能就消失了,数据丢失了。等到脏页刷新完成后,可以认为redo log不需要了,进行定期清理,等下一个事务需要的时候,又往里面填写内容,文件不会删除,而是重复利用。

2024-10-21 10:52:31 1357

原创 ssm框架相关八股

在 Spring Boot 中,通常在中配置。: 在查询之前调用。

2024-10-21 10:52:19 477

原创 设计模式之单例模式

饿汉式、DCL懒汉式。

2024-10-20 22:05:42 721

原创 MySQL相关面试题

SQL注入是一种常见的网络攻击技术,它利用了应用程序代码中的安全漏洞。攻击者通过在Web表单输入、URL参数或其他输入数据中插入恶意SQL代码,尝试欺骗数据库服务器执行未授权的命令。

2024-10-20 21:58:24 919

原创 Java面试——操作系统篇

定义:资源拥有:创建和管理开销:独立性:通信方式:上下文切换:执行流:

2024-10-01 18:14:51 891

原创 MySql中索引失效的情况及原因

这是因为索引如果按照字符串顺序排序,如:aab、aac、aad、baa、bab 都是先按照第一个字母排序,第一个字母相同的情况下按照第二个字母排序。如果使用"%c%" 和 "%c" 去匹配,都成无需的了,因为前面的字母没确定,和最左前缀法则类似。如图:多个键值的B+树,如果要排序的话,要先按照第一个元素的大小排序,在第一个元素相同的情况下,按照第二个元素进行排序,以此类推...3.模糊查询导致索引失效:我们知道 a like "%c%" 和 a like "%c" 都会导致索引失效。

2024-09-25 18:17:58 784

原创 MySql中的事务

活跃事务(活跃事务就是没提交的事务)集合,当前事务id,活跃事务集合中的最小值,活跃事务集合中最大值的下个值。第一是脏读, 当一个事务正在访问数据并且对数据进行了修改,而这种修改 还没有提交到数据库中,这时另外一个事务也访问了这个数据,因为这个数 据是还没有提交的数据,那么另外一个事务读到的这个数据是“脏数据”,依 据“脏数据”所做的操作可能是不正确的。事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。

2024-09-25 17:52:58 1473

原创 算法记录——链表

要注意的就是每次反转完链表p指针指向的就是反转后链表的最后一个元素,同时它的next也是下一组待反转链表的第一个元素,所以每次每组反转完以后,都要把p赋值给g。每组链表反转之前,g的next指向的都是待反转链表的第一个节点,p指向的就是待反转链表的第一个节点。空间复杂度 O(1)O(1)O(1) : 变量 pre 和 cur 使用常数大小额外空间。开始时,快慢指针都在头节点的位置。时间复杂度 O(N)O(N)O(N) : 遍历链表使用线性大小时间。相遇以后,快指针/慢指针到头节点的位置。

2024-09-24 15:45:26 1246

原创 算法记录——树

完全二叉树:相同深度的满二叉树的所有结点(不包含叶子)在该树上都有相应的节点(包含叶子)与之对应且所有左子树先存在,才会存在右子树,然后才会存在下层子树的情况,这样的树为完全二叉树。每次遍历的节点按后序遍历顺序,先收集左右孩子的最大高度,再最后处理当前节点的最大高度!3.遍历节点2的所有祖先节点。首先我们知道二叉搜索树的性质:任何一个节点的左子树的所有节点的值都小于该节点的值,右子树的所有节点的值都大于该节点的值。思路:1.创建一个map集合,先遍历所有节点,把每个节点的父节点存放在当前集合中。

2024-09-24 15:18:17 1452

原创 Java面试——集合篇

来比较minCapacity和 MAX_ARRAY_SIZE,如果minCapacity大于MAX_ARRAY_SIZE,则新容量则为Interger.MAX_VALUE,否则,新容量大小则为 MAX_ARRAY_SIZE(链表需要遍历到特定位置才能访问特定位置的元素,时间复杂度为 O(n),所以不支持快速随机访问。检查新容量是否大于最小需要容量,若还是小于最小需要容量,那么就把最小需要容量当作数组的新容量。,就初始化为默认大小10,获取“默认的容量”和要扩容的大小两者之间的最大值。

2024-09-20 16:42:48 1443

原创 Java面试题——Java基础篇

:::default(不写):

2024-09-20 11:17:07 297

原创 Java面试题——计网篇

安全性:端口:URL:性能:信任和认证:

2024-09-15 11:57:13 647

原创 规则引擎Drools

规则引擎核心思想:将应用程序中的业务决策部分分离出来使得业务规则的变更不需要修改项目代码、重启服务器就可以在线上环境立即生效我们项目中使用Drools。

2024-09-03 10:56:14 1648

原创 MySQL中的索引——适合创建索引的情况

某个字段在 SELECT 语句的 WHERE 条件中经常被使用到,那么就需要给这个字段创建索引了。尤其是在数据量大的情况下,创建普通索引就可以大幅提升数据查询的效率。比如 student_info 数据表(含 100 万条数据),假设我们想要查询 student_id=123110 的用户信息。①查看student_info表中的索引可以看出,我们没有对student_id字段创建索引。②进行如下查询,耗时220ms③添加索引④再查询。耗时0ms。性能提升很大!

2024-08-08 18:34:20 1316 2

原创 HashMap扩容机制

这里拆分链表时的一个比较:e.hash & oldCap == 0 意思是:某一个节点的hash值和老数组容量求&运算。如果等于0,当前元素在老数组中的位置就是在新数组中的位置。如果不等于0,它存储的位置是:原来老数组中的位置 + 老数组容量。现在要拆分标明的这个节点,该点在老数组中的位置是3。如果该点的hash & oldCap == 0。则把该点挂在新数组的也是3的位置。如果不为0,则挂在 3 + 16 = 19 的位置。例:假设老数组容量是16,新数组就是32。

2024-08-08 10:25:53 339

原创 synchronized 锁的到底是什么?

1-2:一个对象里面如果有多个 synchronized 方法,某一个时刻内,只要一个线程去调用其中的一个synchronized方法,其它线程都只能等待。换句话说,某一个时刻内,只能有唯一的一个线程去访问这些synchronized方法。锁的是当前对象this,被锁定后,其它线程都不能进入到当前对象的其它的synchronized方法3-4:加个普通方法后发现和同步锁无关换成两个对象后,不是同一把锁了,情况立即变化5-6:都换成静态同步方法后,情况又变化。

2024-08-08 10:25:21 965

原创 sql优化

使用union all 的话,就会把两条sql所有符合条件的查询结果直接合并。使用union的话,就会多一步过滤,过滤掉二者的重复项。而使用内连接,就会优先把小表放外面,大表放里面。当有写操作进来的时候,就会走Master数据库,进行写操作,然后Master数据库再把数据同步到Slave数据库。循环三次的可以看作小表,循环1000次的看作大表。小表放外面,MySql只需要连接三次数据库,然后在里面执行1000次操作。1.指明字段名称,可以尽量使用覆盖索引,避免回表查询,因此可以提高效率。

2024-08-06 14:17:56 671

原创 MySql索引失效的情况

注意这里最后一种情况,这里和上面只查询 name = '小米科技' 的命中情况一样。这里第二条sql中的,status > '1' 就是范围查询。这是正常查询情况,满足最左前缀,先查有先度高的索引。这里sql中对name索引进行了截取,导致索引失效。发送类型转换,导致索引失效。

2024-08-06 14:17:36 408

原创 leetcode面试算法题

【代码】leetcode面试算法题。

2024-08-06 14:16:43 1405

原创 SpringBoot的自动装配原理

这个扫描的范围是:SpringBoot 主启动类的同级路径及子路径,扫描到特定的@Component、@Service、@Controler、@Repository、@Configuration等等注解后,会做相应的bean注册和配置文件bean注册工作。@Configuration在spring的注解开发中占有很重要的地位,你当你想要定义一个配置类并交给spring管理的时候你就可以在相关类上面加这个注解,并配合@Bean注解把对象交个spring去管理。该注解是三个注解的复合注解。

2024-08-05 18:35:10 919

原创 MySQL中的索引

MySQL中删除索引使用ALTER TABLE或DROP INDEX语句,两者可实现相同的功能,DROP INDEX语句在内部被映射到一个ALTER TABLE语句中。提示 删除表中的列时,如果要删除的列为索引的组成部分,则该列也会从索引中删除。可以看到,book表中已经没有名称为idx_aut_info的组合索引,删除索引成功。MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。先进行book_id条件的比较,然后再进行book_name比较,最后才是info。

2024-08-05 18:34:42 10417

空空如也

空空如也

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

TA关注的人

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