- 博客(137)
- 收藏
- 关注
原创 RAG-检索增强生成
RAG(Retrieval-Augmented Generation)= 检索 + 生成。用户提问 → 向量化 → 检索相关内容 → 拼接上下文 → 输入大模型 → 输出答案。在大模型生成回答之前,先从外部知识库中检索相关信息,再结合这些信息生成答案。将检索到的信息作为上下文输入给大模型,生成最终答案。模型在“参考资料”的基础上回答问题,而不是凭空生成。向量数据库:用于存储和检索向量(如 Milvus)用于生成最终答案(如 GPT-4、Qwen)结构化数据和非结构化数据。大语言模型(LLM)
2026-04-08 19:54:51
419
原创 3w字一文讲透Java IO
Java IO 流是程序与外部设备进行数据传输的通道,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer)。字节流适用于二进制文件,字符流处理文本文件。根据操作对象可分为文件流、内存流、管道流等,其中缓冲流能提升IO效率,对象流支持序列化,转换流解决编码问题。不同流类针对特定场景设计,如PrintStream用于格式化输出,DataStream处理基本数据类型。合理选择流类型能高效完成文件读写、线程通信等任务。
2025-10-25 23:01:08
686
原创 Java 14 新特性Record、instanceof、switch语法速览
Java新特性解析:instanceof模式匹配、Records、Switch表达式和文本块 instanceof模式匹配:简化类型检查和转换,自动完成类型转换,提高代码可读性 Records:不可变数据类的简洁语法糖,自动生成构造函数、getter等方法 Switch表达式:引入箭头语法,支持直接返回值,无需break语句 文本块:简化多行字符串处理,保留自然格式,特别适合HTML/SQL/JSON 这些特性显著提升了Java代码的简洁性和可读性,减少了样板代码,使开发者能更专注于业务逻辑。
2025-10-24 23:08:25
654
原创 深入浅出Java 8 Lambda表达式
本文介绍了Java Lambda表达式的基本语法与典型应用场景。Lambda表达式的基本结构为(参数列表) -> {执行语句},可替代匿名内部类,使代码更简洁。文章以城市为主题,展示了Lambda在线程创建、变量赋值、方法返回值、数组元素和方法参数中的实际应用。同时解释了Lambda中变量作用域的限制,并提供了三种解决方案:使用static变量、AtomicInteger或数组。最后通过多线程示例演示了Lambda在并行编程中的优势,强调其简洁性和易读性。
2025-10-24 22:52:29
663
原创 Java 8 Optional解决空指针问题
本文介绍了Java中的Optional类,它通过封装可能为空的对象,避免了频繁的判空操作。文章从创建Optional的三种方式(empty/of/ofNullable)入手,详细讲解了判断值是否存在、非空时执行动作、设置默认值、过滤条件和转换值等核心操作。通过快递柜的类比,生动解释了Optional的各种方法如ifPresent、orElseGet、filter和map的功能特性。最后提供了操作速查表,比较了各种方法的推荐程度和使用场景。Optional相当于一个智能容器,能优雅处理空值问题,提升代码可读性
2025-10-23 20:17:55
427
原创 Java8 Stream详解
Java 8 Stream 是操作集合的高级迭代器,支持链式操作和惰性执行。主要分为中间操作(返回新流)和终端操作(触发执行)。可通过数组、Stream.of()、集合等方式创建流,支持顺序流和并行流。常用操作包括:filter()过滤元素、map()映射转换、anyMatch()/allMatch()/noneMatch()匹配判断、reduce()归约组合。流具有一次性消费特性,操作不会修改原集合。示例演示了城市名处理的各种流操作,如过滤含"安"的城市、计算城市名长度、判断匹配条件以
2025-10-23 19:43:44
772
原创 Java集合(含List、Map、Set和Queue)(超详细版)
Java 集合框架是 Java 编程中最基础、最常用的部分之一。它为我们提供了一整套标准化的数据结构和算法实现,包括 List、Set、Queue、Map 等,用于高效地存储、访问和操作对象集合。
2025-10-22 20:55:19
1572
原创 JavaSE面向对象(下)
使用abstract按规范,抽象类命名应以Abstract或BasereadFile()定义了文件读取的整体流程。是一个钩子方法(由子类实现不同转换逻辑)。特征说明实例化不可直接实例化方法类型可包含抽象方法与普通方法子类要求必须实现所有抽象方法或自身声明为抽象类用途代码复用、定义模板、约束子类行为使用interface// 常量// 抽象方法。
2025-10-17 21:18:07
806
原创 JavaSE面向对象(中)
Java 自带大量可直接使用的方法(如println()length()equals()等)。提供于 JDK 的类库中,如等。优点:提高开发效率,减少重复造轮子。System.out.println("一成在成长");当标准库方法不满足需求时,自行定义。示例:判断数字奇偶性System.out.println(num + " 是偶数");elseSystem.out.println(num + " 是奇数");若方法为static。
2025-10-12 21:46:38
818
原创 JavaSE数组和字符串
substring()、concat()、replace()都是new新的字符串对象,都不是在原来的字符串进行的,原来的字符串对象没有发生改变。Arrays.toString() 可以将任意类型的数组转成字符串,包括基本类型数组和引用类型数组,有多种重载形式。string对象一旦被创建就固定不变,对它的任何操作都不会影响原来的字符串对象,会生成新的字符串对象。每一个字符串都有一个hash值,这个哈希值大概率不重复,所以String适合作为HashMap的键值。使用Arrays类提供的sort()方法。
2025-10-09 22:07:48
483
原创 多线程常见问题(上)
抽取出来,封装成独立的类,调用方只需要选择使用哪个策略,而不用关心策略内部的实现。定义了一系列算法(或策略),并将每个算法进行封装,使它们可以相互替换。抽象类定义算法的固定执行步骤(模板方法),具体实现交由子类完成。子类可以直接使用父类提供的模板方法逻辑,仅需实现差异化的步骤。可以在运行时灵活选择和替换不同的策略,而不需要修改原有代码。(固定的业务流程),而把具体的实现步骤延迟到子类中去完成。把算法的实现与调用算法的代码分离,便于维护和扩展。新增策略无需修改原有代码,只需扩展新的策略类即可。
2025-09-16 19:29:52
715
原创 Redie详细入门教程2
热点 key 指的是某个 key 被高频访问或频繁更新,导致单点瓶颈或节点过载,可能引起 QPS 打满、延迟增加甚至服务不可用 的问题。原理:Redis 每隔一段时间(默认 100ms)随机抽取一定数量的 key 进行过期检查,删除已过期的。客户端只需通过 CRC16 哈希计算,就能定位 key 属于哪个槽,从而找到对应节点。原理:只有当客户端访问某个 key 时,Redis 才检查它是否过期。如果主节点宕机,某个从节点会被自动提升为主节点。主节点负责写,从节点负责读,并作为故障备份。
2025-09-14 19:27:36
533
原创 Redis超详细入门教程
Redis 中最基本的数据类型。可以存储字符串、整数、浮点数等。双端链表结构。元素按插入顺序排列,支持从两端插入和读取。无序、不重复的字符串集合。类似于 Python 的字典(map),字段-值对的集合。每个 hash 是一个 key,内部可以存多个字段。每个元素关联一个分数(score),按分数自动排序。元素唯一,分数可重复。用于位级别操作的结构,基于 String 实现。近似去重统计结构,用于估算不重复元素的数量。精度约 0.81%,非常节省内存(~12KB)。
2025-09-10 20:31:48
415
原创 MySQL问题8
MySQL中的主从同步机制是一种数据复制技术,将主库(Master)的数据同步到一个或多个从库(Slave),主要通过二进制日志(bin log)实现数据的复制,然后推送给从数据库,从库重放对应日志完成复制。主库写入后,将数据同步到缓存中(如 Redis)。每页返回当前页最大 ID,前端保存下来作为下一页的起点。对于一些关键业务(如登录、注册、下单)直接从主库读写,在代码层约定:某些操作的读取必须从主库读。延迟是必然存在的,只能优化无法避免。对于“写入后立即读取”的操作,如果从库查询不到结果,可以。
2025-09-09 20:15:52
724
原创 MySQL问题7
必须保证 redo log 和 binlog 的写入结果要么同时成功,要么同时失败。→ 主库宕机恢复后,数据丢失,但 binlog 里却存在这条记录,主从数据不一致。事务 A 先锁表 1 再锁表 2,事务 B 先锁表 2 再锁表 1。保证这两份日志的数据一致性,MySQL 引入了。→ 主从复制时,从库无法得到这次事务。(默认开启),当检测到死锁时,会选择。占用大量行锁,导致其他事务长时间等待。如果检测关闭,则依赖锁等待超时机制。事务提交时,日志写入分为。,让另一个事务继续执行。InnoDB 内部有。
2025-09-08 21:18:24
779
原创 MySQL6
问题定义典型场景出现隔离级别脏读读到未提交的数据事务A回滚,事务B读到无效数据不可重复读同一事务内两次读取同一数据结果不同A两次读同一行,B修改提交了幻读同一事务内两次范围查询,结果集行数不同A两次查询,B插入/删除了数据REPEATABLE READ(标准)
2025-09-07 17:54:35
968
原创 MySQL问题5
Binlog是用于复制与恢复的日志,在事务提交后写入;Redo Log是用于保证事务持久性的日志,确保即使崩溃也不丢数据;Undo Log是用于事务原子性和快照读,支持回滚和一致性视图。协同保障 MySQL 的高可靠性与并发性能。
2025-09-06 21:59:12
1162
原创 MySQL问题4
30 60 | ← 根节点 (非叶子)/ | \|10 20 ... | |40 50 ...| 70 80 90 ← 叶子节点查询id=45根节点:[30,60] → 45 位于中间 → 走中间分支进入[40,50]节点 → 找到 45 或返回不存在。
2025-09-05 21:24:14
1165
原创 MySQL知识点3
索引会占用存储空间,且会降低INSERT、UPDATE、DELETE等写操作的性能(因为索引需要同步更新)。通常只为常用于查询条件(WHERE)、排序(ORDER BY)、连接(JOIN)的字段创建索引。联合索引遵循“最左前缀匹配原则”,应将查询中最常作为条件、区分度高的字段放在前面。例如,(a, b, c)的索引能匹配aa AND b的查询,但无法直接匹配b或b AND c的查询。NOT IN!
2025-09-03 17:20:52
1089
原创 MySQL问题2
在InnoDB的B+联合索中,索引键值按 (a,b,c) 的“字典序”排好。MySQL可以利用这个索引,进行快速定位,只能从最左边连续的列开始匹配。。WHERE a=1WHERE b=2INLIKE '前缀%'
2025-09-02 11:28:23
700
原创 Java 泛型入门指南:类型安全、高复用、低出错的秘密武器
本文介绍了Java泛型的概念、优势及三种常见用法。泛型通过类型参数化提供编译期类型检查,避免强制转换和运行时错误。核心优势包括类型安全、代码复用和可读性提升。文章详细讲解了泛型类(如Box<T>)、泛型方法(如<T> void printArray)和泛型接口(如DataGetter<T>)的具体实现,并通过代码示例展示其应用场景。泛型相当于代码的安全气囊和复用魔法棒,能显著提高程序质量。掌握这三种泛型形式(类/方法/接口)是Java开发的重要基础。
2025-08-24 11:23:09
257
原创 JavaEE线程概念
线程是程序执行的最小单元,属于进程的一个实体。一个进程包含多个线程,线程共享的资源有内存空间、文件句柄。进程是程序的一次执行过程,资源分配的最小单位,进程之间通信复杂;线程是进程一个执行单位,程序执行流的最小单位,进程之间通信简单。调用start()方法之后,不会立即执行,线程进行就绪状态,等待调度的阶段。
2025-07-01 22:36:42
382
原创 Java基础知识抽象类
抽象类的定义:抽象类被abstract修饰,不能被直接实例化,作为其它类的基类,为子类提供通用属性和方法定义。抽象类存在是为了提取子类存在的共同的属性和方法,避免重复编写代码。例如,Circle和Rectangle都属于Shape类,可以将Shape定义为抽象类,包含共有的属性和抽象方法。可以规范子类的行为,抽象方法强制要求子类必须实现特定行为,统一子类的功能接口。实现代码的复用和拓展,抽象类普通方法可以直接被子类 继承。
2025-06-23 17:06:50
393
原创 Java基础知识总结继承与多态详解
继承的定义和概念允许一个类(子类)获得另一个类(父类)的属性和方法。子类可以重用父类的代码,添加自己特有的功能或者修改从父类继承来的行为。提现的是“is a ”的关系,比如Cat is anlimal子类是父类的一种特殊类型。Java中继承的语法结构class 子类名 extends 父类名 { // 子类的额外属性 // 子类的额外方法 // 重写父类的方法 }
2025-05-30 17:01:27
947
原创 Java类和对象知识点
本文介绍了面向对象编程中类和对象的基本概念及其组成结构。类作为对象的抽象模板,通过class关键字定义,包含成员变量(属性)和方法;对象是类的具体实例,通过new关键字创建,具有唯一性和独立性。成员变量分为实例变量(每个对象独有)和类变量(static修饰,所有对象共享)。类变量存储在方法区,生命周期与程序相同;实例变量存储在堆区,随对象创建/销毁。文章还通过代码示例展示了类与对象的定义、使用及内存管理原理,帮助理解面向对象的核心概念。
2025-05-25 16:29:58
1090
原创 基于Datawhale AI春训营讯飞星火大学生AI大模型开发的Matlab数学建模助手有感
摘要:本文讲述了一个从数学建模新手到AI助手开发者的成长历程。作者回顾了初次参加建模竞赛时的困惑与挫折,受AI技术启发设计了针对学生痛点的数学建模助手。该系统具备智能问题解析、建模方法推荐、一键代码生成和智能调试功能,基于讯飞星火API开发,通过收集竞赛数据建立代码模板库提升性能。测试表明该系统能有效降低建模门槛,提高学习效率。作者希望这一工具能帮助更多学生轻松入门数学建模,推动建模教育普及。
2025-05-23 21:54:27
857
原创 C++ 基础知识
引用定义:给已经存在的变量取别名,不会新开辟内存,和引用的变量共用一块内存类型& 引用别名 = 引用对象// 引⽤:b和c是a的别名int& b = a;int& c = a;// 可以给别名b取别名,d相当于还是a的别名int& d = b;// 根据引用不改变名字,也不会开辟内存空间,共用一块内存,下面输出的结果是相同的。
2025-05-13 22:36:43
463
原创 Java工具类(Collections、Hutool)
示例:② 查找与统计操作(Searching)方法功能二分查找(需先排序) / 获取最大/最小元素(按自然顺序)按自定义规则取最大元素将集合元素全部替换为指定对象统计某元素出现次数示例:③ 同步控制(Thread Safety)为非线程安全集合提供同步包装。示例:④ 不可变集合方法功能 / / 返回空的不可变集合 / 返回只包含一个元素的不可变集合返回指定集合的不可变视图示例:⑤ 其他常
2024-12-07 18:51:34
476
原创 Java强连通分量(含面试大厂题和源码)
强连通分量(Strongly Connected Component, SCC)是图论中的一个概念,用于描述有向图中的一种特殊子图。在有向图中,如果两个顶点u和v之间的所有路径都是有向的,并且u可以到达v,同时v也可以到达u,那么这两个顶点就属于同一个强连通分量。在强连通分量中,任意两个顶点都是相互可达的。一个有向图可以被分解为多个强连通分量,这些分量之间是相互独立的。
2024-04-24 22:12:27
708
原创 Java拓扑排序知识点
这些题目都是大厂面试中常见的题型,旨在考察候选人对图算法的理解和实现能力。在技术面试中,大厂可能会要求候选人实现或优化一些与图相关的算法,比如深度优先搜索(DFS)、广度优先搜索(BFS)和拓扑排序等。这些题目都是大厂面试中常见的题型,旨在考察候选人对图算法的理解和实现能力。:实现一个深度优先搜索算法,用于递归地遍历一个图的所有顶点。:给定一个图,使用DFS实现一个算法来检测图中是否存在环。:给定一个图,使用DFS实现一个算法来检测图中是否存在环。
2024-04-23 21:46:52
752
1
原创 Java深度优先搜索与广度优先搜索知识点(含面试大厂题和源码)
深度优先搜索(Depth-First Search,DFS)和广度优先搜索(Breadth-First Search,BFS)是两种常用的图遍历算法,它们在解决图和树结构的问题中非常有用,如路径搜索、最短路径、网络爬虫、社交网络分析等。
2024-04-23 21:15:25
816
原创 Java求解最近点对问题(含面试大厂题和源码)
最近点对问题(Closest Pair of Points Problem)是计算一个点集内所有点对之间最短距离的问题。这个问题在计算机图形学、地理信息系统、以及许多科学和工程领域中都有应用。
2024-04-22 17:40:57
940
原创 Java大整数乘法知识点(含面试大厂题和源码)
大整数乘法是指对超出常规整数类型(如int或long)能表示范围的整数进行乘法运算。BigInteger:Java提供了BigInteger类来处理大整数运算,包括乘法。BigInteger类提供了一个multiply方法,可以用来进行乘法运算。:如果没有使用BigInteger类的限制,你也可以手动实现大整数乘法,类似于我们在学校学习的手动乘法过程。
2024-04-22 17:27:02
587
原创 Java最短路径问题知识点(含面试大厂题和源码)
最短路径问题是图论中的一个经典问题,它寻找图中两点之间的最短路径。这个问题在现实世界中有广泛的应用,比如导航系统中的路线规划、网络中的信息传输等。(Bellman-Ford):可以处理带有负权边的图,通过迭代松弛操作计算从单一源点到所有其他顶点的最短路径。(Dijkstra’s Algorithm):适用于没有负权边的图,使用贪心策略和优先队列(或二叉堆)来找到单源最短路径。(Floyd-Warshall):计算所有顶点对之间的最短路径,适用于密集图。
2024-04-21 19:45:58
1096
原创 Java最长公共子序列知识点
最长公共子序列(Longest Common Subsequence,LCS)问题是一个经典的计算机科学问题,它要求找出两个序列中最长的公共子序列。这里的“子序列”是指在原始序列中元素保持相对顺序的序列,但不必连续。
2024-04-21 19:40:51
804
原创 Java树表查找
树表查找通常指的是利用树形数据结构进行查找操作,其中最著名的树表结构是二叉查找树(也称为二叉搜索树、BST)。在BST中,每个节点都包含一个键(key)和相应的值(value),并且树的每个节点都遵循以下性质:左子树上的所有键都小于或等于当前节点的键,右子树上的所有键都大于当前节点的键。
2024-04-20 23:59:16
823
基于Python的彩图版飞机大战实现(源码+使用文档)
2024-06-02
基于Java的两个通用安全模块的设计与实现(源代码+使用文档)
2024-05-30
基于Java音像店租赁管理系统的设计与实现(源码+使用文档)
2024-05-30
基于Java某店POS积分管理系统(源码+使用文档)
2024-05-30
基于Java ME无线网络移动端的俄罗斯方块游戏的实现(源码+使用文档)
2024-05-29
基于Java蚁群算法路由选择可视化(源码+使用文档)
2024-05-29
基于Java小区门户网站实现(源码+使用文档)
2024-05-29
基于Java进销存管理系统毕设(源码+使用文档)
2024-05-29
基于Java3D的网络三维技术的毕设实现(源码+使用文档)
2024-05-28
基于Java基于局域网的聊天室系统(源码+使用文档)
2024-05-28
基于Javamail的邮件收发系统毕设(源码+使用文档)
2024-05-28
基于Java医药管理系统设计(源码+使用文档)
2024-05-28
基于Java多线程与线程安全实践(源码+使用文档)
2024-05-28
基于Java CS远程监控系统软件的实现(源码+使用文档)
2024-05-28
基于Java的安全电子商务(源码+使用文档)
2024-05-28
基于Java银行帐目管理系统(源码+使用文档)
2024-05-28
基于Java公共资源模块的设计与开发(源代码+使用文档)
2024-05-28
基于Java小区物业管理系统(源码+使用文档)
2024-05-28
基于Java画图形学(源码+使用文档)
2024-05-28
基于Java作业管理系统设计(源代码+使用文档)
2024-05-28
基于Python的微信机器人毕设(源码+使用文档)
2024-06-09
基于Python的今天吃什么(源码+使用文档)
2024-06-09
基于Python的看图猜成语(源码+使用文档)
2024-06-09
基于Python智慧校园考试系统(源码+使用文档)
2024-06-09
基于Python的BBS问答社区(源码+使用文档)
2024-06-09
基于Java的SaaS OA协同办公毕设(源码+使用文档)
2024-06-09
基于Java画图形学程序(源码+使用文档)
2024-06-09
基于Python的甜橙音乐网(源码+使用文档)
2024-06-09
基于Python的AI智能联系人管理毕设(源码+使用文档)
2024-06-08
基于Python的51商城毕设(源码+使用文档)
2024-06-08
基于Python的智能停车场车牌识别计费系统(源码+使用文档)
2024-06-08
基于Python的Excel数据分析程序(源码+使用说明)
2024-06-08
基于Python的Word助手(源码+使用文档)
2024-06-04
基于Python的RCQ读者书库程序(源码+使用文档)
2024-06-04
基于Python的图片批量处理器(源码+使用文档)
2024-06-04
基于Python的开心麻花影视作品(源码+使用文档)
2024-06-04
基于Python的高德地图+58租房(源码+使用文档)
2024-06-04
基于Python的DIY字符画(源码+使用文档)
2024-06-02
基于Python的超级画板程序(源码+使用文档)
2024-06-02
基于Python的玛丽冒险的实现(源码+使用文档)
2024-06-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅