自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 大模型幻觉与语义漂移问题

模型生成了“看起来合理但实际上错误或不存在”的内容。模型在“编”而不是在“查”模型的输出或行为随时间、环境或上下文发生系统性偏移。模型“不稳定”或“变了”大模型的幻觉是指模型生成看似合理但实际错误的信息,本质是概率生成而非事实检索问题;漂移是指模型在时间或上下文中行为发生偏移,本质是稳定性问题。幻觉影响内容真实性,漂移影响系统可控性,两者分别需要通过RAG和Prompt/系统设计来解决。

2026-03-20 07:20:59 1443

原创 MySQL执行慢怎么排查和慢的原因

如果是数据库整体变慢,就看 CPU、IO、内存、连接数、Buffer Pool 命中率、慢 SQL 数量,以。> MySQL 执行慢,我会先区分是单条 SQL 慢,还是数据库整体慢。> 查询日志或接口日志定位具体 SQL,然后用 EXPLAIN 分析执行计划,重点看有没有走索引、扫描。然后从慢 SQL、执行计划、索引、锁等待、数据。> 如果没有走索引,就检查索引设计和 SQL 写法,比如是否违反最左前缀、是否有函数、隐式类型。整体思路是先定位慢 SQL,再看执行计划,然后从索引、锁、数。

2026-05-15 20:37:40 387

原创 Java 后端面试场景题:页面刷新后一直转圈,应该怎么排查?

如果接口 pending 或返回 500,我会根据请求路径、参数、时间点、traceId 去查后端日志,看。首先看 Console。这类问题一般需要结合监控系统来分析,比如接口耗时、QPS、错误率、CPU、内存、GC、数据库连接。如果接口状态码是 200,响应也返回了,但页面还是一直转圈,这时问题可能不在后端接口本身。> 总体来说,我会先区分是前端、网络还是后端问题,再沿着请求链路逐层定位,同时结合日志、监。页面刷新后一直转圈,看似是一个简单的问题,但背后可能涉及前端渲染、接口请求、登录权限、后。

2026-05-15 20:20:05 506

原创 java开发面试-AI Coding速成

2. 工单状态是否有固定流转,比如 CREATED -> ASSIGNED -> PROCESSING -> DONE ->你看,CREATED -> false 这个实现其实没问题,因为分配不是走 updateStatus,而是走。> 第一,listTicketsByStatus 返回的是新的列表,没直接暴露内部集合,这个是好的。> 设计确认没问题后,我再让模型拆成小任务,比如先写数据结构,再写核心 service,再。

2026-04-23 19:42:24 779

原创 Spring用了哪些设计模式?

Spring 默认 Bean 是 singleton,容器里通常同一个 Bean 只创建一个实例。Spring MVC 的拦截器链、Spring Security 的过滤器链都很典型。Spring 中常见的设计模式有:工厂模式、单例模式、代理模式、模板方法模式、观察者模。式、适配器模式、策略模式和责任链模式。最典型的是工厂模式用于 Bean 创建,代理模式。比如事务、日志、权限校验,很多都是通过代理在目标方法前后增强。面试里可以从几个最核心、最好举例的模式答,不要一上来铺太多。

2026-04-21 20:27:35 352 1

原创 Agent 面试速成清单

Function calling 只是 Agent 的一个动作执行机制,不等于 Agent。“Agent 不应该把工具失败直接等同于任务失败,而应该有 retry、fallback、replan、ask-user 这几。“RAG 不是 Agent,RAG 是给模型补充外部知识的一种检索增强机制。不能把完整 chain-of-thought 暴露给用户,生产环境通常保留“结构化步骤”和“工具日志”,而不是原。“MCP 是一个让模型或 Agent 以标准化方式接入外部工具、资源和上下文的协议层。

2026-04-17 23:06:22 1021 1

原创 Function Calling和MCP使用区别

Connectors 文档 (https://platform.openai.com/docs/guides/tools-remote-mcp)档里就把远程 MCP server 作为 type: "mcp" 的工具来接入 Responses API。- 两者不是互斥关系,很多场景里 MCP 反而是作为一种“工具来源”接给模型的。MCP 是“用一个统一协议把外部工具/数据源接进来,模型再通过这个协议使用它们”。- 现在:模型 -> MCP 协议层 -> MCP server -> 工具。

2026-04-14 09:11:02 695

原创 Java Scanner 的 ACM 常用输入模板

/ 如果前面用了 nextInt/next/nextLong 等,要先清理回车。// 5. 读一整行 String(可包含空格)// 4. 读一个 String(不含空格)// 11. 读一个二维 int 数组。// 9. 读一个 String[]// 10. 读一个 char[]// 3. 读一个 double。// 8. 读一个 long[]// 7. 读一个 int[]// 2. 读一个 long。// 6. 读一个 char。// 1. 读一个 int。

2026-04-11 20:55:05 709

原创 Java 里最容易混淆的 start/end 和 start/length API 对照表

new String / arraycopy / read / write:最后一个参数通常是“取多少个”- substring / subList / sort / fill:第二个参数通常是“到哪结束”- start, length/count:表示从 start 开始取多少个。- “从数组/缓冲区取一段”类方法,通常是 start, length。- “截区间”类方法,通常是 start, end。- start, end:表示区间,通常左闭右开。- 区间是 [from, to)

2026-04-06 17:22:28 580

原创 LeetCode 专用 Java 模板,只保留刷题最常用的打印代码

› LeetCode 专用 Java 模板,只保留刷题最常用的打印代码。// 打印链表: 1 -> 2 -> 3。// 1. 一维数组。// 2. 二维数组。// 前序打印二叉树。// 层序打印二叉树。

2026-04-05 21:07:20 354

原创 Java 打印模板大全

System.out.print("前序: ");System.out.print("中序: ");System.out.print("后序: ");System.out.print("层序: ");- 集合:System.out.println(list)// 9. 对象数组 / 对象集合。// 1. 基本类型 / 字符串。- 二叉树:前序 / 中序 / 后序 / 层序。下面这份够覆盖刷题和面试里大多数场景。// 8. 自定义对象。// 2. 一维数组。// 3. 二维数组。// 11. 二叉树。

2026-04-05 21:06:21 1085

原创 Elasticsearch面试八股整理

refresh 解决可搜索性,flush 解决持久化,merge 解决 segment 过多带来的查询和存储问。“因为 Lucene 的 segment 是不可变的,所以 ES 不能直接原地修改文档。也就是说,Lucene 更像搜索内核,Elasticsearch 更像可直接落地的分布式搜索引擎。“ES 查询快最核心还是因为 Lucene 的倒排索引,把‘词 -> 文档列表’提前建好了,不用像数。“BM25 是 Lucene/ES 默认的相关性评分算法,用来衡量一个文档和查询词的匹配程度。

2026-04-03 11:26:57 660

原创 黑马点评面试题整理

就是把瞬时洪峰请求转成后端可控速度的处理流量。前端瞬间进来的大量请求不会直接压到数据库,而是先进入 Kafka 排队,由消费者按系统可承受速度消费。就是订单创建时间已经超过支付时限,但状态仍然是待支付的订单。比如支付时限 15 分钟,那么创建时间早于当前时间 15 分钟前,且状态仍然是待支付的订单,就属于超时未支付订单。

2026-03-31 23:59:41 1155 1

原创 Hot100 里常见 Java API 总表

树:递归 dfs(root.left) / dfs(root.right)- 只要 value,不关心 key,用 values()- key 和 value 都要,用 entrySet()17. 二叉树/链表题里最常见的不是 API,而是模板。- split 在算法题里能用,但正则有额外开销。3. 可变字符串 StringBuilder。9. 堆 PriorityQueue。- 适合快速初始化,不适合动态增删。

2026-03-30 08:23:11 265

原创 Java 里的“左闭右开”

只要是“切片/截取/子区间”,Java 大多是左闭右开。Java 里“左闭右开”特别常见,“左闭右闭”相对少一些。是 [0, bound),含 0 不含 bound。- rangeClosed() 是左闭右闭。这是典型左闭右闭 [start, end]- 只要是“自己写循环边界”,很常见左闭右闭。- range() 是左闭右开。左闭右开 [start, end)左闭右闭 [start, end]含 begin,不含 end。含 start,不含 end。含 start,不含 end。

2026-03-29 21:33:48 231

原创 jstack和dump使用区别

jstack和heapdump是两种不同的JVM诊断工具。jstack用于分析线程状态,查看死锁、阻塞或CPU飙高等线程问题,展示线程执行栈和方法调用位置。heapdump则用于内存分析,可检测内存泄漏、大对象占用及对象回收问题,提供对象实例和引用链信息。简单来说,jstack解决"谁卡住了"的问题,heapdump解决"内存被谁占了"的问题。服务响应慢时先用jstack,内存溢出时用heapdump。jstack文件小获取快,heapdump文件大分析耗时。

2026-03-29 14:13:29 673

原创 ThreadLocal 中的强引用和弱引用

>,所以它对 ThreadLocal 的引用是弱。• ThreadLocal 这一套里,ThreadLocalMap.Entry 的 key 是弱引用。ThreadLocalMap -> Entry -> key -> ThreadLocal对象。key -> 弱引用指向 ThreadLocal 对象。key -> 弱引用 -> local。- ThreadLocal 是弱引用 key。- key:ThreadLocal,弱引用。- value:你存进去的数据,强引用。

2026-03-28 09:51:26 383

原创 二叉树 / 满二叉树 / 完全二叉树 / 二叉查找树

就不是完全二叉树,因为最后一层不是从左到右连续的。- 满二叉树、完全二叉树、二叉查找树,都属于二叉树。最后一层的节点必须从左到右连续排列,中间不能空。每个节点最多只有两个子节点,叫左孩子和右孩子。- 二叉查找树也不一定是满二叉树或完全二叉树。也就是说,不会出现“只有一个孩子”的节点。除了叶子节点外,每个节点都有两个子节点。- 满二叉树:每个非叶子节点都有两个孩子。它只限制“数量”,不限制“大小关系”。- 完全二叉树不一定是二叉查找树。除了最后一层,前面每一层都满;- 满二叉树不一定是二叉查找树。

2026-03-28 08:35:12 470

原创 JWT和redis配合时间线

1. 取 token2. 校验签名(防篡改)3. 校验过期时间4. 查 Redis(是否仍有效)5. 解析用户6. 放入 SecurityContext7. 放行JWT 校验解决“这个 token 是不是真的”,Redis 校验解决“这个 token 还能不能用”。

2026-03-24 11:31:33 274

原创 大模型流式响应链路技术处理

👉数据流(核心抽象)你可以这样说:在基于 WebFlux 的系统中,Flux 用来表示大模型的流式输出;WebClient 用于调用大模型接口并接收流式响应;WebSocket 或 SSE 用于将 Flux 中的数据实时推送给前端;而 S3 协议通常用于存储文档或知识库数据,不参与实时推理链路。WebClient 用来调用大模型,Flux 表示大模型的流式输出,WebSocket/SSE 把这个流实时推给前端,而 S3 负责存储数据,不参与实时流处理。如果你愿意,我可以下一步给你画一个。

2026-03-23 10:15:41 489

原创 S3协议快速入门

S3 协议来源于,本质上是:一套基于 HTTP 的对象存储接口规范,用来上传、下载和管理文件(对象)。它不是传统意义上的“网络协议”(像 TCP/IP),而是:👉一种 RESTful API 规范(接口标准)S3 协议是:一套基于 HTTP 的对象存储 API 标准定义了如何操作“Bucket + Object”已成为云存储领域的事实标准S3 协议并不是传统网络协议,而是由 Amazon S3 定义的一套基于 HTTP 的对象存储接口规范,用于上传、下载和管理数据对象。

2026-03-20 07:20:50 788

原创 Java后端:锁的底层原理都是什么?

因为:会锁住总线 或 cache line(MESI协议)CAS = CPU 原子指令 + 缓存一致性协议synchronized = 对象头 + CAS + OS mutexAQS = CAS + 队列 + park/unpark(基于 OS)

2026-03-19 09:08:32 330

原创 拿不到锁时,线程到底在干嘛?

阶段行为轻量级锁CAS + 自旋重量级锁线程挂起(阻塞)短暂自旋 + 队列阻塞(park/unpark)机制获取失败时行为是否自旋是否阻塞OS阻塞❌✅自旋 + park✅(短)✅CAS一直自旋✅❌setnx轮询✅❌Redisson订阅 + park少量✅Java 本地锁(synchronized、ReentrantLock)主要通过 AQS 实现,自旋 + 阻塞结合;CAS 是纯自旋机制;而 Redis 原生 setnx 是轮询方式,效率较低;

2026-03-19 08:52:51 498

原创 Kafka 实现超高吞吐量(百万级消息 / 秒)和极低延迟(毫秒级)原因

硬件层面:用磁盘顺序 IO + 零拷贝最大化 IO 效率,避开随机 IO 的性能陷阱;架构层面:用分区 + 批量处理实现并行化,摊薄网络 / 磁盘开销;交互层面:用拉取模式 + 轻量级存储简化服务端逻辑,避免不必要的性能损耗。不追求 “最快的单个操作”,而是通过 “批量 + 并行 + 复用系统底层能力” 实现整体极致性能,这也是 Kafka 区别于其他消息队列(如 RabbitMQ)的核心优势。

2026-03-18 15:07:01 764

原创 线程,线程池,进程状态

对象状态数量关键状态线程6种线程池5种进程5种。

2026-03-16 09:37:28 335

原创 Java算法lru和带ttl的lru

可以,这个题如果改成外部测试类main函数LRUCache类打印测试结果我先给你整理成一个,尽量保持你原来的写法和思路不变。

2026-03-06 13:18:58 658

原创 Java数组常见用法

你给的这两个是其实在 Java 里还有不少常见用法,我给你按整理一下。

2026-03-04 12:51:56 48

原创 工厂模式及简单demo

本文介绍了工厂模式的三种实现方式:1.简单工厂:一个工厂类通过参数创建不同产品,实现简单但不支持扩展;2.工厂方法:每个产品对应独立工厂类,扩展性好但类增多;3.抽象工厂:创建整套产品族,保证一致性但扩展麻烦。每种模式都配有精简的Java代码示例,展示了产品接口、具体产品和工厂类的实现方式。文章最后对比了三者的优缺点,并给出了面试中的一句话总结:简单工厂用if/switch判断,工厂方法为每个产品建工厂,抽象工厂创建相关产品组。

2026-02-28 08:40:01 672

原创 面试中常见数据类型的测试用例写法大全(Java版)

本文系统整理了Java面试中常见数据类型的测试用例编写方法,涵盖基本数据类型、字符串、数组、集合类和数据结构(链表、二叉树)等。重点强调了边界测试、空值处理、特殊情况和易错点,如int的MAX_VALUE/MIN_VALUE边界、long类型必须加L后缀等。针对链表和二叉树提供了手动构建和辅助函数两种实现方式,并推荐使用可修改的ArrayList初始化写法。文章指出测试用例的核心在于边界思维,而非写法高级程度,建议面试时必须考虑正常值、空值、单元素、边界和大数据等测试场景。最后提供了完整示例结构和测试思维导

2026-02-22 15:37:46 423

原创 Java特性清单

如果面试官问:你能总结一下 Java 的重要特性吗?可以分四大块回答:面向对象特性并发特性JVM 特性框架特性这样显得非常体系化。

2026-02-22 10:32:08 722

原创 Java常见输入输出总结

数据类型半ACMACM关键点int直接赋值nextInt()int[]{}循环读 nextIntString[]{}int[][]双层{}双循环char[][]双层{}List链表new + nextdummy构造树层序解析。

2026-02-20 12:13:47 530 1

空空如也

空空如也

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

TA关注的人

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