自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第二段经历

第二段是在上海巨人网络科技有限公司,2026年1月到4月,担任服务端开发工程师。我的工作包括几个方面:一是排查奖励接口高并发下的数据库死锁问题,通过分析慢SQL、事务执行和锁竞争,优化SQL访问路径,把死锁发生率从72%降到0%;二是针对用户奖励状态存储占用高的问题,用分片Bitmap替代Hash存储,把50万用户状态数据从约24MB压缩到0.5MB,内存降低约98%;五是参与部门内部RAG知识问答系统建设,优化多轮对话历史过长的问题,把历史Token降低75%,恢复正常响应延迟。

2026-10-03 16:22:28 194

原创 回答agent问题

Claude Code 采用 Prompt 前缀缓存,缓存模型 Prefill 阶段 KV 张量状态,依靠完整前缀匹配跨请求复用,减少重复计算,前缀任意改动就会让缓存失效,具备 TTL 过期机制。Agent Tool 是可供大模型调用的原子外部函数,用来弥补大模型不能操作外部系统的短板,模型决策调用,外部环境执行,结果返回模型继续处理稀土掘金。React 是 Meta 开源前端 UI 库,基于组件化、虚拟 DOM,通过 diff 局部更新 DOM,现在主流函数组件 + Hooks 开发页面。

2026-09-07 15:37:52 168

原创 agent问题

4、claude code缓存机制。1、agent tool的定义。2、react是什么。

2026-09-07 15:27:37 220

原创 一些常用名词

它本身不干活,它只是把你"想要什么"和"条件是什么"打包成一个规范的请求包,递交给能干活的那个系统。query:搜索引擎里输入的那串文字,在AI和API的语境里,Query = "带参数的调用指令"CoT:把Ai工具的思考透明化,失败的一般都是因为幻觉,全靠脑子想,想错了没人纠正。description:工具描述,给Ai看的工具使用说明书。ReAct:思考不仅透明化,他还要去现实验证。

2026-09-06 16:36:46 217

原创 回答操作系统问题

操作系统五种 IO 模型:阻塞 IO、非阻塞 IO、IO 多路复用、信号驱动 IO、异步 IO;进程间通信常见方式:管道、命名管道、消息队列、共享内存、信号量、信号、Socket、内存映射;目的是隔离进程保障安全、缓解物理内存不足、实现按需加载、屏蔽物理内存碎片。经典五状态为新建、就绪、运行、阻塞、终止;就绪进程等待 CPU,运行进程占用 CPU,阻塞进程等待外部事件,事件完成后阻塞进程回到就绪队列。7、select、poll、epoll的区别。2、进程、线程、协程的区别。3、进程之间的通信方式。

2026-08-29 01:16:46 237

原创 操作系统问题

7、select、poll、epoll的区别。4、什么是虚拟内存、为什么要有虚拟内存。1、操作系统中的进程有哪几种状态。2、进程、线程、协程的区别。3、进程之间的通信方式。6、操作系统的io模型。5、什么是分段和分页。

2026-08-28 17:23:56 174

原创 回答网络-02

滑动窗口是 TCP 流量控制的实现方式,接收方通过 rwnd 通告缓冲区剩余容量,发送方据此控制批量发送的数据量,窗口收到 ACK 后向后滑动,既避免发送过快溢出接收缓冲区,又提升传输效率。SACK 即选择性确认,当滑动窗口出现部分报文丢失、后面报文先抵达接收方时,接收方通过 SACK 告诉发送方哪些分片已经收到,发送方仅重传丢失的数据段,避免不必要的重传。超时重传就是发送报文后开启计时器,超时没有收到 ACK 应答就重新发送数据,用来解决报文丢失、ACK 丢失、网络延迟带来的数据传输失败问题。

2026-08-28 11:49:06 200

原创 回答网络-01

HTTP2.0 基于 TCP,只能解决应用层队头阻塞,TCP 丢包仍会阻塞整条连接;TCP 为全双工通信,客户端发起 FIN 关闭上行通道,服务端先回复 ACK,等剩余数据发送完成再发送 FIN 关闭下行通道,两个报文无法合并,所以需要四次挥手;HTTP 是明文传输,端口 80,不安全;TCP 面向连接,通过三次握手建立连接,可靠有序传输,具备重传和拥塞控制,开销较高;GET 多用于查询,参数放在 URL,可缓存、暴露参数,具备幂等性;POST 用于提交数据,参数放请求体,无长度限制,默认不缓存,不幂等。

2026-08-28 11:41:07 245

原创 计算机网络

问题十六:OSI七层模型,TCP/IP四层模型是什么。问题七:TCP三次握手,为什么三次,2和4次行不行。问题十二:TCP超时重传是什么?问题十四:TCP滑动窗口是什么,作用?问题一:Http1.0和2.0的区别。问题二:Http2.0和3.0的区别。问题四:Http和Https的区别。问题十:TCP四次挥手,为什么四次。问题十三:TCP的SACK是什么。问题五:Get和Post的区别。问题九:TCP如何保证可靠传输。问题十五:TCP拥塞控制的步骤。问题六:TCP和UDP区别。问题八:TCP的粘包和拆包。

2026-08-28 11:23:44 219

原创 回答问题JVM

对象头包含 Mark Word 与类型指针,Mark Word 保存锁、哈希码、GC 年龄;G1 将堆分为多个 Region,GC 分为初始标记、并发标记、最终标记、筛选回收;依靠 SATB 并发标记,支持可预测停顿,优先回收垃圾最多区域,不易产生内存碎片。CMS 分为初始标记、并发标记、重新标记、并发清除;基础 GC 算法有标记清除、复制、标记整理;类加载分为加载、验证、准备、解析、初始化;new 创建对象首先检查类是否加载,随后在堆分配内存并零值填充,设置对象头,最后执行构造方法完成对象初始化。

2026-08-16 21:27:56 237

原创 问题JVM

问题六:CMS的回收过程,CMS的优缺点。问题十:什么是双亲委派机制,怎么打破。问题七:G1的回收过程,G1的特点。问题一:JVM运行时数据区域。问题十一:一个对象的内存布局。问题四:垃圾回收算法有哪些。问题三:怎么判断对象已死。问题五:垃圾回收器有那些。问题十二:创建对象的过程。问题二:方法区的实现。问题八:STW是什么。

2026-08-15 20:31:47 243

原创 redis题目面渣重点

16 RDB 机制、触发时机、fork 写时复制原理 17 AOF 刷盘三策略、AOF 重写完整流程、重写缓冲区作用(快手原题) 18 RDB 与 AOF 优缺点对比、如何选型(美团 / 小米高频) 19 Redis4.0 混合持久化原理、生产配置方案 20 Redis 宕机数据恢复流程、aof/rdb 修复命令。13 SET 完整参数(NX/EX/KEEPTTL/GET)、分布式锁用法 14 INCR 原子性原理、计数器 / 限流业务实现 15 SADD 时间复杂度、各结构高频命令。

2026-08-11 20:50:23 227

原创 redis截图

2026-08-11 20:49:40 205

原创 解决项目需求

原因:

2026-08-09 17:44:44 233

原创 回答知识总结04(redis)

Hash、Set、ZSet 数量小时用 ziplist,量大后切换 dict、intset、skiplist。SDS 是 Redis 自定义动态字符串,解决 C 原生字符串缺陷,支持 O (1) 获取长度、二进制安全、自动扩容,作为字符串底层载体。Redis 基于内存操作,采用 IO 多路复用,命令执行单线程规避锁竞争,搭配高度优化的数据结构,因此性能极高。10、分布式锁怎么实现,setnx有什么问题,redission是什么。13、缓存的穿透、击穿、雪崩是什么,解决方案是什么。7、Io多路复用是什么。

2026-08-08 15:37:33 239

原创 知识总结04(redis)

10、分布式锁怎么实现,setnx有什么问题,redission是什么。6、Redis为什么设计成单线程,为什么6.0之后引入多线程。9、数据库、redis双写一致性问题、出现原因和解决方案。13、缓存的穿透、击穿、雪崩是什么,解决方案是什么。5、Hash的扩容,渐进式rehash是什么。2、数据类型及其对应的底层结构。11、过期删除和内存淘汰策略。1、redis为什么这么快。4、Zset怎么实现的。7、Io多路复用是什么。

2026-08-08 14:36:48 70

原创 回答知识总结03

看 type 确定访问级别,key 确认是否走索引,rows 观察扫描数据量,key_len 验证联合索引匹配情况,Extra 排查文件排序、临时表等性能瓶颈。可能是索引失效、回表 IO 开销大、索引区分度低、MySQL 优化器放弃索引、出现文件排序、深度分页或者关联查询缺少索引导致。最左前缀原则是联合索引匹配规则,查询需要匹配索引左侧连续字段;查询需要的所有字段都存在二级索引内,不用访问聚簇索引,规避回表,就是覆盖索引。17、什么是索引下推和索引跳跃。18、什么是最左前缀索引。16、什么是索引覆盖。

2026-08-07 15:09:02 262

原创 回答知识总结03

英 (InnoDB)、默 (MyISAM)、归 (Archive)、C (CSV)、S、黑 (Blackhole),再加 Memory;MySQL 主流存储引擎有 InnoDB、MyISAM、Memory、Archive 等,InnoDB 支持事务与 MVCC,是当前默认首选存储引擎。SQL 依次经过连接器、查询缓存、分析器、优化器、执行器,最后由执行器调用存储引擎完成数据读写并返回结果。6、什么是脏读、不可重复读、幻读、innodb如何解决。7、默认隔离级别为什么是RR,大厂为什么要改成RC。

2026-08-06 21:15:45 204

原创 知识总结03(mysql)

6、什么是脏读、不可重复读、幻读、innodb如何解决。24、binlog、redlog、undolog的区别。7、默认隔离级别为什么是RR,大厂为什么要改成RC。2、innodb和myisam的区别。1、mysql的存储存储引擎有哪些。25、什么是buffer pool。14、什么是聚簇索引和非聚簇索引。17、什么是索引下推和索引跳跃。19、用了索引还是很慢的原因。12、innodb索引类型。9、当前读和快照读是什么。18、什么是最左前缀索引。21、索引失效有哪些原因。4、什么是数据库事务。

2026-08-06 20:40:57 258

原创 线程加强篇

2026-08-05 21:59:14 227

原创 回答知识总结02(并发)

创建线程方式。

2026-08-03 14:33:40 192

原创 回答知识总结02

JDK8 去掉分段,用 CAS 配合 synchronized 锁住哈希数组单个桶首节点,结构和 HashMap 一致,读写并发效率更高。JDK8:无分段,CAS+synchronized 锁桶头节点,结构同 HashMap,多线程扩容。JDK1.8 的 HashMap 底层是哈希数组搭配链表,链表长度到 8 且数组足够长就转红黑树,节点少于 6 变回链表;CopyOnWriteArrayList 是线程安全 List,读取不加锁,增删改加锁并复制新数组完成修改,适合读多写少,遍历不会报并发修改异常。

2026-08-02 22:59:17 253

原创 skill技巧

常用实现类是 HashSet,底层依托 HashMap 实现,存入元素时分为两步判断重复:hashCode 定位,equals 判内容;两个都相同 = 重复HashSet 靠先比对 hashCode 哈希值,再用 equals 对比内容,两者全都一致就判定元素重复,无法存入。先找位置(hashCode),再比真身(equals);位置一样长相一样 = 重复你后续不管发任何 Java 面试题、MQ、框架题,我全部套用这 4 块固定格式输出。

2026-08-01 23:05:47 633

原创 知识总结02

synchronized是怎么实现的,锁的是什么,如何保证原子性,可见性,有序性,锁升级。什么是threadlocal,怎么实现的,应用场景,内存泄漏问题,怎么解决。cop yonwtitle ArrayList是什么,怎么实现的。volatile是什么,保证什么性,为什么不能保证原子性。为什么不建议executors创建线程池线程安全的方案。hashmap cap=2^n,为什么,怎么保证。concurrentHashMap怎么实现的。hashmap负载因子0.75,为什么。cas是什么,有什么问题。

2026-08-01 23:05:03 73

原创 Bean的生命周期

我结合Spring来讲下Bean的生命周期,整体分为创建、初始化、使用、销毁这几大块,步骤顺序是固定的。第三步执行Aware接口回调,如果类实现了BeanNameAware、ApplicationContextAware这些接口,容器会把bean名称、上下文等资源注入进来。最后是销毁阶段,只有单例Bean会由容器管理销毁,容器关闭时触发,执行顺序为@PreDestroy、DisposableBean的destroy方法、配置的destroy-method。多例每次获取才实例化,容器不负责销毁。

2026-07-31 23:24:57 198

原创 知识总结01

a 和 b 都指向字符串常量池同一个地址,地址相等,所以 == 为 true。补充:如果是变量相加,比如。Java 有两种动态代理,均在运行期动态生成代理类,不用手动编写代理代码。因为编译期优化,两个都是字符串字面常量,编译器直接把。,无法编译优化,会在堆新建对象,== 结果是 false。

2026-07-31 21:43:06 166

原创 String如何实现不可变的

Java 里所有看似能改字符串的方法:replace、substring、concat、toUpperCase、拼接 +,全都不会碰原来的 value 数组。第三层:String 类本身是 final(不能被继承篡改逻辑)第四层:所有修改 API 全部返回新对象,绝不改原数组。私有 value 数组(防止普通人摸到容器)修饰 value 数组(箱子不能整体换掉)数组(一排格子,存所有字符)靠四层层层上锁,缺一不可。

2026-07-31 21:17:11 238

原创 Java动态代理如何实现

硬盘全程不会多出任何代理类的.java/.class 文件,程序关闭,内存里这份临时 class 直接消失。我的理解:核心,在不改变原来的代码的情况下,如果要实现拓展新的功能,通过代理实现,再调用代理,横向开发。动态代理我的理解:和静态代理作用是一样的,但是静态代理我们代理的是一个角色,动态代理可以代理一类角色。动态代理:代码一行没写,动态代理:运行自动生成,一套代码通用,适配绝大多数开发。一个动态代理,一般代理某一类业务,可以代理多个类,代理的是接口。静态代理:手写代理类,少量场景能用,多了必难维护;

2026-07-31 18:30:48 175

原创 String基础加深

string、stringbuffer、stringbuilder的区别string 为什么设计成不可变string str = new string("aa") 创建了几个对象string a = "ab" ,String b = "a" + "b",a==b吗Java动态代理如何实现String如何实现不可变的final、finally、finalize什么区别有了eauals为什么还要hashcode方法string str = new string("aa") 创建了几个对象。

2026-07-31 15:48:05 38

原创 加深基础01

Java 中 == 和 equals 的区别equals底层是==,但是他重写了string类,string他比较内容,相同的话他就认为相等==基本数据类型比较数值;引用数据类型比较内存地址。比较地址重写 equals 为什么一定要重写 hashCode?重写 equals 要改 hashCode,因为哈希集合依赖 hashCode 找位置、equals 做校验。不改会出现存重复数据、查不到数据的问题。

2026-07-30 18:15:44 230

原创 kafka基本问题

【代码】kafka基本问题。

2026-07-30 14:51:35 458

原创 关于kafka

分布式分片+多副本,天然支持高可用、水平扩容。读写全部落在分区Leader,架构简单,吞吐上限高。消费组+分区绑定,灵活实现点对点/广播两种消费模式。数据持久化落盘,消息不会消费完立刻删除,支持回溯重消费。Topic是逻辑层面的消息分类,用来区分不同业务的消息。存订单消息、log_topic存系统日志、pay_topic存支付记录。生产者发消息、消费者订阅消息,都必须指定Topic。Topic本身不存储真实消息数据,只是逻辑归类。Partition是Topic的物理分片。

2026-07-28 23:32:24 262

原创 总结启动项目

【代码】总结启动项目。

2026-07-28 16:11:59 35

原创 kafka基本命令

先说一个容易失败的地方,如果是Windows必须要把下载下来的kafka改一下名字,去掉后面的版本号,不然后面运行命令的时候,他会出现。配置脚本:Windows用ps1(一开始想用bat但是bat不好用该用ps1,bat文件你就不用管,复制下面代码粘进去)格式化存储目录,自己替换一下集群id就可以f-z1egYyST0pH5ivw7xulQ替换掉。关闭的时候最好ctrl+c关闭,异常关闭下次启动会异常。测试生产者和消费者(中文传输会乱码)就重新生成了tmp里面的文件。导致不能运行,非常重要。

2026-07-28 14:47:51 107

原创 minion基本操作

是对象存储的核心概念之一,它相当于传统文件系统中的“文件夹”或“目录”,是存储对象(Object)的容器。我们可以创建一个 uploads 的桶,它的名字和 yml 配置文件中 bucketName 相同就可以了。minio.exe server 存储文件夹路径 --console-address :9001。改一下名字,不然exe名字太长了。权限设置为public。

2026-07-28 09:24:44 29

原创 Elasticsearch基本命令

md老是下载失败,换成codex下载后粘贴到plush里面。配置文件:elasticsearch.yml。查看是否安装成功,先启动一个再查。下载IK在bin下面。

2026-07-27 19:42:29 402

原创 每日学习-08

数据库无高并发、无大量热点查询,不用 Redis;当数据库读请求压力大出现性能瓶颈,依靠 Redis 扛读流量。

2026-07-23 19:24:13 183

原创 装箱与接口和抽象类的理解

一个Integer对象占用16个字节的内存空间,而一个int类型数据只占用4字节的内存空间。一套能力用接口,可以实现多个;抽象类有构造、普通变量;接口只有常量,无构造。但是基本数据类型在读写效率这方面,要比包装类高效。一类事物用抽象类,只能继承一个;因为:List、Map 等集合。

2026-07-22 22:41:48 220

原创 每日学习-07

Docker 利用 Linux Namespace 做环境隔离、Cgroups 限制资源、联合文件系统实现分层镜像,轻量容器,相比虚拟机不需要完整操作系统内核,启动快、占用资源少。Compose 基于 yml 文件定义多容器服务,统一启停管理,适合单机多服务;仅单机有效,集群环境不适用。单容器用 docker run 有序组织容器名、资源限制、端口、数据挂载、环境变量;多服务使用 docker-compose.yml 统一编排,同时配置自动重启保证可用性。

2026-07-22 21:20:08 242

原创 每日学习-06

问题一:为什么选择做Java结合AI Agent的方向,不做纯传统后端?问题二:你项目里的 Agent 自主决策、工具调用链路是怎么设计的?问题三:除了开源Agent框架,你了解 SpringAI 吗?说说核心作用和适用场景问题四:开发过程中如何规避大模型幻觉?有没有做过结果校验、重试机制?问题五:你简历AI项目居多,未来职业定位:后端工程为主还是AI应用为主?

2026-07-21 23:43:08 313

空空如也

空空如也

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

TA关注的人

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