自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 docker简单了解使用

容器内的数据会被写入宿主机的卷目录,即便容器删除 / 重建,数据仍保存在宿主机,重新挂载卷即可恢复。挂载卷之后容器和宿主机(虚拟机)之间任何一方更改另一方都会自动更新。镜像地址可能会变更,如果失效可以百度找最新的docker镜像。的 —— 容器删除 / 重建时,其内部的所有数据都会丢失,容器创建时,如果发现挂载的数据卷不存在时,会自动创建。最后,执行命令,安装Docker。首先要安装一个yum工具。更新yum,建立缓存。

2025-12-20 10:29:28 346

原创 RabbitMQ

但这并没有考虑到消费者是否已经处理完消息,可能出现消息堆积(当消费者1 一秒处理 50 条消息,消费者 2 一秒处理 5 条消息,有 50 条消息的时候 mq 仍然会让消费者 1 处理 25 条,消费者 2 处理 25 条,就会导致消费者 1 处理完了不工作了,消费者 2 还在工作)当消费者处理消息结束后,应该向RabbitMQ发送一个回执,告知RabbitMQ自己消息处理状态。非持久的消息会存储到内存中,如果 mq 重启消息就会消失,持久化的会存到磁盘中。创建用户(每个项目创建一个用户)

2025-12-14 12:37:08 923

原创 【无标题】

计算当前范围的中间索引mid = left + (right - left) // 2(用这种方式而非(left+right)//2,是为了避免left和right过大时出现整数溢出)。当nums[mid] == target时,不直接返回,而是将右边界收缩到mid(而非mid-1),继续向左查找,直到左边界>右边界,最终判断左边界是否为目标值。:定义查找范围的左边界(left)和右边界(right),初始时左边界为集合起始索引(通常是0),右边界为集合末尾索引(通常是length-1)。

2025-12-08 17:41:15 697

原创 RAG知识库

构建文档分割器对象的时候可指定两个参数,500指的是每个文本片段最多的字符,50指的是两个文本片段最多相同字符数(给拆分后的文本片段"搭桥",让模型不会因为拆分而丢失跨片段的语义)的核心方案,其核心是将 “大模型生成” 与 “知识库检索” 结合,让模型回答基于真实、最新的知识库内容。默认的功能不是很强大,检索的时候可能没那么精准,所以可以替换更强大的向量模型。1.两个向量的余弦相似度越高,说明向量对应的文本相似度越高。有知识库之后大模型的调用流程。2.向量数据库使用流程。

2025-12-01 10:42:28 704

原创 LangChain4j

原本用的是 OpenAiChatModel,如果要实现一些高级功能(如会话记忆、提示词模板、流式输出)的话会非常复杂,AiServices 是 LangChain4j 封装的高阶工具,自动整合 OpenAiChatModel 并提供更易用的接口,简化高级功能开发。系统提示词(System Message)是大模型的「底层规则」,优先级高于用户输入,决定了 AI 的角色定位、回答风格、约束条件等。通过实现 ChatMemoryStore 接口并结合 Redis,可将会话记忆持久化,重启后仍能恢复上下文。

2025-11-23 09:25:48 815

原创 本地部署Ollama

说明:添加 Spring Web 依赖确保 HTTP 接口正常提供,指定 Ollama 依赖版本可避免版本冲突。

2025-11-17 17:11:00 850

原创 JVM内存结构

程序计数器(ProgramCounter,简称PC)是计算机处理器(CPU)中的一个重要寄存器,主要用于存储下一条要执行的指令在内存中的地址。它是CPU执行指令流程中不可或缺的组成部分,其核心作用是保证程序能够按顺序、正确地执行。虚拟机栈由栈帧组成,每个方法从调用到执行结束,对应一个栈帧在虚拟机栈中从入栈到出栈的过程(即“压栈”和“弹栈”)。当前正在执行的方法对应的栈帧位于栈顶,称为“当前栈帧”,虚拟机对栈的操作仅针对当前栈帧。

2025-10-26 09:17:24 684

原创 十大排序其六

因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志flag判断元素是否进行过交换。从而减少不必要的比较。(这里说的优化,可以在冒泡排序写好后,在进行)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。增长量h的确定:增长量h的值每一固定的规则,我们这里采用以下规则。

2025-10-20 10:34:44 347

原创 栈、队列、树

栈(Stack)是计算机科学中最基础、最常用的线性数据结构之一,其核心特征遵循“后进先出(Last-In-First-Out, LIFO)"的原则 – 即最后加入栈的元素,会最先被取出,类似于日常生活中“叠盘子”(最后叠的盘子先拿)或“堆书”(最后放的书先取)的逻辑。

2025-10-12 11:16:18 1007

原创 HashMap源码学习

hashMap源码的解读

2025-09-28 10:51:36 254

原创 Redis入门

NoSQL:查询方式取决于具体数据库类型(如 MongoDB 的聚合框架、Redis 的命令),通常是非结构化的。NoSQL:数据结构灵活,支持键值对、文档(JSON/Bson)、图结构或宽列存储,无需预定义 schema。NoSQL:适用于高并发读写、数据模型灵活、对一致性要求较低的场景(如社交网络、实时分析)。SQL:适用于数据结构固定、关系复杂、需要强事务的场景(如电商订单、银行系统)。SQL:支持强事务(ACID),适合对一致性要求高的场景(如金融系统)。再按格式输入密码AUTH 123456。

2025-06-15 11:12:30 918

原创 minio上传文件

创建配置类,注入minio客户端。

2025-06-08 08:07:15 198

原创 数据库密码加密

计算资源消耗可配置:通过调整strength参数(默认 10),可以增加计算成本,抵御暴力破解。密钥扩展能力较弱:对于需要处理短密码的场景,BCrypt 的密钥扩展机制不如专门设计的 KDF(如 PBKDF2)完善。抗彩虹表攻击:BCrypt 在加密时会自动生成随机盐值并嵌入到密文中,无需单独存储盐值,有效抵御彩虹表攻击。计算开销大:高strength值会显著增加服务器负载,影响系统响应速度,尤其在高并发场景下需要权衡性能。不适合资源受限环境:在移动设备或嵌入式系统中,高强度加密可能导致不可接受的延迟。

2025-06-03 21:08:56 316

原创 定时删除数据库中的验证码

数据库实现验证码⾃动删除的解决⽅案– 删除旧事件(如果存在)– 创建新事件(每分钟执⾏⼀次)COMMENT ‘每分钟清理过期验证码’DO。

2025-05-26 21:53:38 211

原创 第十周博客

3.找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,开启服务即可获取授权码。password:邮箱授权码(非登录密码,需从QQ邮箱设置中获取)host:SMTP 服务器地址(这里是QQ邮箱的SMTP服务器)properties:使用 SSL 加密的 SMTP 协议。username:发件人邮箱(需替换为你的QQ邮箱)port:端口号(QQ邮箱的SSL加密端口)enable:启用 SSL 加密。auth:需要身份认证。1.打开qq邮箱的设置。

2025-04-28 21:35:29 247

原创 第九周博客

默认情况下,Cookie存储在浏览器内存中,当浏览器关闭,内存释放,则Cookie被销毁。2. 负数:默认值,Cookie在当前浏览器内存中,当浏览器关闭,则Cookie被销毁。钝化:在服务器正常关闭后,Tomcat会自动将Session数据写入硬盘的文件中。1.正数:将Cookie写入浏览器所在电脑的硬盘,持久化存储。3.获取客户端携带的所有Cookie,使用request对象。活化:再次启动服务器后,从文件中加载数据到Session中。4.遍历数组,获取每一个Cookie对象:for。

2025-04-24 10:37:20 328

原创 第八周博客

1.创建SpingBoot工程,引入Mybatis相关依赖2.准备数据库表、实体类3.配置Mybatis。

2025-04-13 08:38:25 324

原创 第七周博客

在不惊动原始代码的基础上进行功能增强连接点(JoinPoint):程序执行过程中的任意位置,粒度为执行方法、抛出异常、设置变量等在SpringAoP中,理解为方法的执行切入点(Pointcut):匹配连接点的式子在SpringAoP中,一个切入点可以只描述一个具体方法,也可以匹配多个方法一个具体方法:com.itheima.dao包下的BookDao接口中的无形参无返回值的save方法。

2025-04-06 11:33:44 339

原创 第六周博客

配置(在谁里面创建的简单数据类型在谁bean中关联)Value中的数据传给对应的对象。

2025-03-30 09:33:40 438

原创 第五周博客

如果需要实现复杂的SQL功能,建议使用XML来配置映射语句。1.加上@Mapper注解后:应用程序在运行时,会自动的为该接口创建一个实现类对象,并且会自动将该实现类对象存入IOC容器。1.XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名)。4.在Mapper接口的方法中传递多个参数时,需要用注解@Param来给参数起名字,如果只传递一个参数则不用起名字。3.XML映射文件中sql语句的id与Mapper 接口中的方法名一致,并保持返回类型一致。

2025-03-23 08:58:59 191

原创 第四周博客

因为是要将dao放到servise中所以在id=servise中配置。ref相当于第三步配置的id;因为.getBean返回的是Object类型的,所以需要强转。非单例的话使用一次bean就会出创建一个新实例,浪费资源。工厂代码(与静态工厂不同,不是静态static方法)id属性标示给bean起名字(可随便起,不要重复)可起多个别名,以空格,逗号,分号隔开,用来。不写默认有,写了有参的就必须写空参的。3.配置bean(xml里面配置)5.配置server与dao的关系。bean标签标示配置bean。

2025-03-16 08:13:09 396

原创 第三周博客

JSP在被访问时,由JSP容器(Tomcat)将其转换为Java文件(Servlet),在由JSP容器(Tomcat)将其编译,最终对。一种动态的网页技术,其中既可以定义html,js,css等静态内容,还可以定义java代码的动态内容。%>:内容会放到out.print(0中,作为out.print0的参数。..%>:内容会放到jspService()方法之外,被类直接包含。sp的作用:简化开发,避免了在servlet中直接输出html标签。%>:内容会直接放到jspService()方法之中。

2025-03-09 08:23:36 351

原创 2025第一周

寒假期间学习情况属实不好,学习计划大部分没学完,只能开学来补。项目的截止时间也马上就到了,只能抓紧时间学完尽量写项目了。

2025-02-23 10:18:59 316

原创 后端学习第三周

1.正则表达式的使用:split方法使用正则表达式作为分隔符,因此必须对正则表达式有一定的了解。本周主要在写项目,基本没学什么新东西,split也是在写项目的时候新学的东西。写项目的感觉还不错,用到了学的知识点才会有学的实感。3.空字符串处理:当使用默认的split方法(即limit为0)时,末尾的空字符串会被丢弃。4.线程安全:split方法是线程安全的,但由于它返回一个新的数组,如果在多线程环境下对返回的数组进行操作,需要额外注意线程同步问题。limit = 0:尽可能多地分割,丢弃末尾的空字符串。

2024-12-15 08:35:37 333

原创 后端学习第二周

这周把IO流大致都学完了,感觉还行,然后就要再次写项目了,依旧是不知道咋开头。希望能写的顺利。

2024-12-08 09:59:12 373

原创 后端学习第一期

file对象表示路径,可以是文件,也可以是文件夹。这个路径可以是存在的,也可以是不存在的。

2024-12-01 11:16:54 356

原创 第七周学习总结

定位指的就是将指定的元素摆放到页面的任意位置,通过定位可以任意的摆放元素。

2024-11-23 20:02:42 1517

原创 第六周学习总结

这一组一组的名值对我们称为声明,在一个声明块中可以写多个声明,多个声明之间使用;隔开声明的样式名和样式值之间使用:来连接。这个标签没有任何语义,就是一个纯粹的块元素并且不会为它里边的元素设置任何的默认样式,主要用来对页面进行布局的。通过选择器可以选中页面中指定的元素,并且将声明块中的样式应用到选择器对应的元素上。----JPEG图片支持的颜色比较多,图片可以压缩,但是不支持透明。定义:所谓的行内元素,指的是只占自身大小的元素,不会占用一行。----GIF支持的颜色少,只支持简单的透明,支持动态图。

2024-11-17 21:43:30 1733

原创 第五周学习总结

Collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的这周学的东西需要记的地方很多,也都不太好记让人头疼,加上高等数学让人双倍头疼,真希望时间能跳跃到我啥都会的时候,也希望下周前端的学习能简单点。

2024-11-09 15:28:42 1847

原创 第四周学习总结

Date 类是一个JDK写好的]avabean类,用来描述时间,精确到毫秒利用空参构造创建的对象,默认表示系统当前时间利用有参构造创建的对象,表示指定的时间。

2024-11-03 10:08:27 669

原创 第三周学习总结

抽象类:如果一个类中存在抽象方法,那么该类就必须声明为抽象类抽象方法:将共性的行为(方法)抽取到父类之后。由于每一个子类执行的内容不一样,所以在父类中不能确定具体的方法体,该方法就可以定义为抽象方法。

2024-10-27 11:15:39 886

原创 第二周学习总结

进小组已经第二周了,学到了很多。但似乎到了难的地方了,类与对象一点一点地听貌似是听懂了,但组装起来就迷糊了,完全不知道怎么用。只能抄视频中的代码加深理解,虽然也会出错很多、会有很多不理解的地方,但有学姐答疑解惑,相信也是能攻克难关的。

2024-10-20 23:27:53 535

原创 第一周学习总结

2.在开头下输入Scanner sc=new Scanner(System.in);4.范围-> byte<short<int<long<float<double。1.在最上方输入import java.util.Scanner;:1.如果要定义long或float类型 要在数后面加L/l,F/f。.当字符串中出现“+”时就变成字符串连接符了。十六进制:由0-9和a-f组成,以0x开头。1+99+“人” -> “100人”二进制:由0 1组成,以0b开头。八进制:由0-8组成,以0开头。

2024-10-12 21:21:31 235 1

空空如也

空空如也

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

TA关注的人

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