Fork me on GitHub
摘要: 提示词(Prompt)是输入给大模型(LLM)的文本指令,用于明确地告诉大模型你想要解决的问题或完成的任务,也是大语言模型理解用户需求并生成准确答案的基础。因此 prompt 使用的好坏,直接决定了大模型生成结果的质量(是否符合预期)。 Prompt 基本使用 为了让大模型生成更符合预期的结果,我们 阅读全文
posted @ 2025-04-02 16:50 磊哥|www.javacn.site 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 嵌入模型(Embedding Model)和向量数据库(Vector Database/Vector Store)是一对亲密无间的合作伙伴,也是 AI 技术栈中紧密关联的两大核心组件,两者的协同作用构成了现代语义搜索、推荐系统和 RAG(Retrieval Augmented Generation, 阅读全文
posted @ 2025-04-01 16:36 磊哥|www.javacn.site 阅读(61) 评论(0) 推荐(0) 编辑
摘要: MCP 这个概念相信大家已经听了无数次了,但不同人会有不同的解释,你可能也是听得云里雾里的。 不过没关系,今天这篇内容会通过 Spring AI 给你实现一个 MCP 的 Client 和 Server 架构,让你彻底搞懂 MCP 的概念,以及学会 MCP 的开发技能。 什么是MCP? MCP 是 阅读全文
posted @ 2025-03-27 12:02 磊哥|www.javacn.site 阅读(1844) 评论(0) 推荐(0) 编辑
摘要: MySQL 是面试中必问的模块,而 MySQL 中的优化内容又是常见的面试题,所以本文来看“工作中优化MySQL的手段有哪些?”。 工作中常见的 MySQL 优化手段分为以下五大类: 索引优化:确保高频查询字段有合适索引。 SQL优化:减少全表扫描、避免不必要计算。 事务与锁优化:避免长事务、使用批 阅读全文
posted @ 2025-03-24 15:11 磊哥|www.javacn.site 阅读(114) 评论(0) 推荐(0) 编辑
摘要: Reactor 模型是一种事件驱动的高性能网络编程模型,主要用于处理高并发的网络 I/O 请求。其核心思想是通过一个或多个线程监听事件,并将事件分发给相应的处理程序,从而实现高效的并发处理。 为什么要有Reactor模型? 在高并发下,只有多路复用技术,以及 NIO 是不行的,因为 NIO 只是 J 阅读全文
posted @ 2025-03-21 14:54 磊哥|www.javacn.site 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 最近正是找实习的大好时机,互联网各家也分别官宣了他们的招聘计划。 京东宣布要招聘 10000 人,腾讯宣布要招聘 7000 人,字节宣布要招 4000 人,美团宣布了他们要招聘 5000 人,并且公布了 70% 的高转正率: (图片来自:美团公众号,侵权联系可删) 这不,这两天有同学面试美团,被拷打 阅读全文
posted @ 2025-03-18 17:17 磊哥|www.javacn.site 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 项目的高可用、高并发和高扩展是当前开发中必须追求的三大目标,因此也是面试中经常被问到的内容,所以我们今天就来看看,如何才能保证项目的高可用性呢? 1.高可用的度量指标 项目的可用性的度量指标是以可用性百分比(N个9)来衡量的,也就是通过系统正常运行时间占比衡量的,例如: 99.9%(3个9):年故障 阅读全文
posted @ 2025-03-10 11:51 磊哥|www.javacn.site 阅读(91) 评论(0) 推荐(0) 编辑
摘要: JWT(JSON Web Token) 是一种开放标准(RFC 7519),用于在网络应用间安全传输信息,通常用于身份验证和信息交换。其核心特点是通过紧凑且自包含的 JSON 对象传递数据,无需服务端存储会话状态。 1.为什么需要JWT? 开发中需要 JWT 的主要原因是为了解决传统基于 Sessi 阅读全文
posted @ 2025-03-06 16:47 磊哥|www.javacn.site 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 线程池的拒绝策略是指,当线程池无法承载更多任务时执行的行为。也就是当线程池的核心线程数、最大线程、任务队列都满的情况下,又来了新的任务时,线程池执行的行为被称之为线程池的拒绝策略。 线程池的执行流程如下: 1.内置拒绝策略 在 Java 中,线程池内置了以下四种拒绝策略(Rejected Execu 阅读全文
posted @ 2025-03-05 10:45 磊哥|www.javacn.site 阅读(133) 评论(0) 推荐(0) 编辑
摘要: JVM 内存模型(JVM Memory Model)和 Java 内存模型(Java Memory Model, JMM)是 Java 开发中两个非常重要的概念,但这两个概念很容易被搞混,所以本文就来通俗易懂的讲讲二者的区别。 首先,我们先来看看各自的概念,以及其解决的问题。 1.JVM内存模型 定 阅读全文
posted @ 2025-03-04 10:51 磊哥|www.javacn.site 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 在 Redis 中有两个定义:一个缓存击穿、一个缓存穿透,因为二者的名字比较像,因此很容易就搞混了。但本文会给你提供一个记忆的小技巧,帮你彻底区分二者的定义。 在讲这个技巧之前,我们先来了解一下二者的区别。 1.定义与区别 缓存穿透(Cache Penetration):缓存穿透是指查询的数据既不在 阅读全文
posted @ 2025-02-28 11:45 磊哥|www.javacn.site 阅读(620) 评论(2) 推荐(1) 编辑
摘要: 读写分离(Read-Write Splitting)是一种常见的数据库架构优化策略,通过将数据库的读操作(查询)和写操作(插入、更新、删除)分离到不同的数据库实例上,从而提高系统的性能、可扩展性和高可用性。 在项目中实现读写分离目前主流的实现技术是通过 Apache ShardingSphere 来 阅读全文
posted @ 2025-02-26 14:30 磊哥|www.javacn.site 阅读(771) 评论(0) 推荐(1) 编辑
摘要: 华为每次的招聘都很晚,但同时又是最让人惊喜和期待的 Offer,但很多同学对于华为的评级和薪资颇为不解,所以今天在这里简单的和大家聊聊这个话题。 接下来的这个评级和薪资是往年校招的统计数据,非官方信息,大家可以做一个参考。 本科校招薪资 本科主要定级为 13 级,14 级占比约 15% 左右。 普通 阅读全文
posted @ 2025-02-24 10:49 磊哥|www.javacn.site 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 面试时经常被问到“你的缺点是什么?”,这个问题看似很简单,但每次回答都感觉差点意思。如果你也有这样的困惑,那么本篇文章一定要认真看完。 1.关键点 在回答之前,首先,我们要搞清楚以下两个关键点: 问题关键点:首先得想清楚面试官为什么要问这个问题?可能面试官想了解你的自我认知能力,看看我是否诚实,以及 阅读全文
posted @ 2025-02-20 16:36 磊哥|www.javacn.site 阅读(118) 评论(0) 推荐(0) 编辑
摘要: JWT 在目前的项目开发中使用到的频率是非常高的,因此它也是面试常问的一类问题,所以今天我们就来看看“项目中 JWT 的执行流程?”这个问题。 1.什么是 JWT? JWT(JSON Web Token) 是一种开放标准(RFC 7519),用于在网络应用间安全传输信息,通常用于身份验证和信息交换。 阅读全文
posted @ 2025-02-19 12:37 磊哥|www.javacn.site 阅读(584) 评论(0) 推荐(1) 编辑
摘要: RabbitMQ 延迟消息的队头阻塞问题是指,在使用死信队列(DLX)和 TTL(消息过期时间)实现延迟消息时,由于队列的先进先出(FIFO)特性,在队列头部消息未过期的情况下,即使后续消息已经过期也不能及时处理的情况。 实现原理 RabbitMQ 延迟消息的实现方式有以下两种: 死信队列+TTL。 阅读全文
posted @ 2025-02-18 17:13 磊哥|www.javacn.site 阅读(385) 评论(1) 推荐(1) 编辑
摘要: 前面一篇文章我们实现了《炸裂:SpringAI内置DeepSeek啦!》,但是大模型的响应速度通常是很慢的,为了避免用户用户能够耐心等待输出的结果,我们通常会使用流式输出一点点将结果输出给用户。 那么问题来了,想要实现流式结果输出,后端和前端要如何配合?后端要使用什么技术实现流式输出呢?接下来本文给 阅读全文
posted @ 2025-02-13 08:53 磊哥|www.javacn.site 阅读(1378) 评论(1) 推荐(1) 编辑
摘要: 好消息,Spring AI 最新快照版已经内置 DeepSeek 了,所以以后项目中对接 DeepSeek 就方便多了。但因为快照版会有很多 Bug,所以今天咱们就来看稳定版的 Spring AI 如何对接 DeepSeek 满血版。 SpringAI和DeepSeek介绍 Spring AI 是 阅读全文
posted @ 2025-02-12 16:07 磊哥|www.javacn.site 阅读(1360) 评论(0) 推荐(1) 编辑
摘要: 一、基础原则 1️⃣ 说人话最重要 "不用专业术语,就像和朋友聊天一样描述需求"。 ❌️ 错误示范:"请用SWOT分析法输出新能源汽车行业报告"。 ✅ 正确示范:"我要给老板汇报比亚迪谈判进展,完全不懂电池技术,请用买菜大妈都能听懂的话说明:他们的核心技术强在哪?报价大概多少?谈判时怎么装专业?"。 阅读全文
posted @ 2025-02-11 16:55 磊哥|www.javacn.site 阅读(2356) 评论(0) 推荐(4) 编辑
摘要: DeepSeek 是国内顶尖 AI 团队「深度求索」开发的多模态大模型,具备数学推理、代码生成等深度能力,堪称"AI界的六边形战士"。 DeepSeek 最具代表性的标签有以下两个: 低成本(不挑硬件、开源、使用简单无需复杂提示词) 高性能(推理能力极强、回答准确) 然而,在我们使用 DeepSee 阅读全文
posted @ 2025-02-10 17:21 磊哥|www.javacn.site 阅读(4091) 评论(0) 推荐(0) 编辑
摘要: DeepSeek 是国内顶尖 AI 团队「深度求索」开发的多模态大模型,具备数学推理、代码生成等深度能力,堪称"AI界的六边形战士"。 DeepSeek 身上的标签有很多,其中最具代表性的标签有以下两个: 低成本(不挑硬件、开源) 高性能(推理能力极强、回答准确) 一、为什么要部署本地DeepSee 阅读全文
posted @ 2025-02-08 19:44 磊哥|www.javacn.site 阅读(22490) 评论(2) 推荐(4) 编辑
摘要: 近两年不知道大家有没有发现,现在的面试中《场景题》问的越来越多了,一方面是就业市场竞争者较多所带来的必然结果;另一方面是随着时间的推移,公司对于应聘者的技术要求也越来越高了,这时候只会八股文就不够了,你还得会更难的场景题才行。 所以,今天我们就来盘 Java 中的常见面试题《如何实现亿级用户在线状态 阅读全文
posted @ 2025-01-14 16:27 磊哥|www.javacn.site 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 当数据量比较大时,使用常规的方式来判重就不行了。例如,使用 MySQL 数据库判重,或使用 List.contains() 或 Set.contains() 判重就不行了,因为数据量太大会导致内存放不下,或查询速度太慢等问题。 1.空间占用量预测 正常情况下,如果将 40 亿 QQ 号存储在 Jav 阅读全文
posted @ 2025-01-07 16:14 磊哥|www.javacn.site 阅读(2087) 评论(12) 推荐(1) 编辑
摘要: 我们知道 EasyExcel 在作者从阿里离职之后就停止维护了,但在前两周 EasyExcel 原作者推出了他的升级版框架 FastExcel。以下是 FastExcel 的上手实战过程,带大家一起提供新框架的魅力。 FastExcel 是由原 EasyExcel 作者创建的最新作品,作者在 202 阅读全文
posted @ 2024-12-23 22:39 磊哥|www.javacn.site 阅读(2529) 评论(5) 推荐(3) 编辑
摘要: 我们知道在 JVM 中类加载总共使用 5 步组成的,而类的生命周期总共有 7 个阶段,如下图所示: 其中每步的含义如下: 1.加载 加载(Loading)阶段是整个“类加载”(Class Loading)过程中的一个阶段,它和类加载 Class Loading 是不同的,一个是加载 Loading 阅读全文
posted @ 2024-12-16 18:27 磊哥|www.javacn.site 阅读(90) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示