- 博客(637)
- 收藏
- 关注
原创 Java面试看这一篇就够了!2026最新「八股文+场景题」最全总结(附答案)
最近也是一直有粉丝朋友私信我说,金九银十都快来了,LZ 有没有一份内容全面,题目高频的面试题库,最近面试老挂,需要系统的梳理一下!我的内心:这我上哪儿整去啊!没办法好歹也是坐拥 5W 粉丝的小博主,粉丝就是我的上帝,于是熬夜 18 天为大家整理了一份 Java 全栈面试进阶宝典!希望对大家有所帮助!大家都知道,现在的 Java 面试是越来越难了!
2026-05-25 10:52:50
318
原创 如何在Oracle Agent Factory中配置国内厂商的LLM?
目前Oracle PAF(Private Agent Factory)官方提供配置,LLM providers只有OCI GenAI、OpenAI、Gemini以及vLLM和Ollama的方式。如果想用国内LLM或者其他中转的LLM,通常是兼容OpenAI的模式,但是OpenAI这里配置是写死的,无法自定义baseurl:如果想直接通过vLLM配置,默认无法指定api key:看来默认就无法使用其他LLM了?已跟PM反馈过此问题,回复后续版本会考虑支持这个OpenAI兼容的LLM配置。
2026-05-25 10:51:18
187
原创 从零搭建量化投资系统:用 Qlib 一行代码搞定均线分析
如果你曾经手动从财经网站下载 CSV,然后在 Excel 里拖公式算均线、画折线图,你一定懂那种"数据还没分析完,耐心先耗光了"的感觉。量化投资的核心从来不是那几行策略代码,而是高效的数据处理管线。今天介绍的Qlib,是微软亚洲研究院开源的 AI 量化投资框架,涵盖了数据获取、特征工程、模型训练、回测评估的全流程。本文从一个最小化示例出发——拉取贵州茅台一年的收盘价并计算 5 日均线——带你跑通 Qlib 的"Hello World"。数据管线+ 本地二进制存储,告别 CSV 地狱表达式引擎。
2026-05-25 10:50:20
349
原创 Java面试一次通关:这份“八股文+场景题”神级总结
最后再强调一次,要想跳槽面试不心慌,那就好好修炼”,啃透这本《互联网大厂 Java 高级工程师核心面试题解析》,需要可以点击下方名片获取。
2026-05-24 11:13:31
312
原创 Spring Boot 3.2 + JDK 21 虚拟线程压测:传统线程池与 Project Loom 的吞吐量对比实践
虚拟线程执行到这段代码时,会钉住底层的载体线程(ForkJoinPool 里的平台线程),导致该载体线程无法调度其他虚拟线程,相当于退回了平台线程的调度模式。目前的权宜之计是减少虚拟线程的创建频率,比如配合连接池复用,而不是每个请求都新建。第三组是重点观察对象——虚拟线程最大的优势就是可以让同步代码写出异步的性能,如果业务代码完全不用重构就能拿到收益,那迁移成本最低。)已经正式 GA,就顺手做了一次对比压测,看看在真实的 I/O 密集型场景下,虚拟线程相比传统平台线程到底能榨出多少性能余量。
2026-05-24 11:08:39
312
原创 一文讲透 Flink State Backend 与 Checkpoint Storage
Checkpoint Storage 决定了Checkpoint 快照数据的持久化位置,目前主推两种 Checkpoint Storage。运行时其实使用的是 TaskManager 的堆内存,但名字却带有 Fs)。为了让职责更清晰,Flink 1.13+ 正式将这两者解耦。State Backend 决定了运行时状态数据的存储介质和访问方式,目前主推两种 State Backend。在 Flink 1.13 版本之前,这种设计导致了概念上的混淆(例如。
2026-05-24 11:07:44
359
原创 2026年Java面试1000道高频题库:从基础入门到大厂架构,保姆级总结合集
不知道最近面试是否顺利,是否会经常问到一些自己不熟悉的问题,不知道怎么去回答这些问题,今天笔者分享一份 Java 面试宝典,内容点包含有 java 集合,jvm,并发编程,spring,mybatis,springMVC,微服务,Dubbo,netty,网络,zookeeper,kafka,rabbitMQ,readis 缓存,数据库,设计模式 等一线大厂互联网大厂常问到的面试真题,。
2026-05-22 10:31:40
334
原创 Agent 框架别急着乱学:先用 LangChain 搞懂 7 个基本模块
先说结论。如果你想系统理解 Python Agent 框架,仍然值得作为第一篇。它不是最轻的,也不是最“自动化”的,但它把 Agent 应用里的关键零件都摆出来了:模型、工具、状态、记忆、、多 Agent 路由和 tracing。如果你只是想马上做一个复杂自动化 Agent,LangChain 本身可能不够省事,后面大概率会接或 Deep Agents。但如果你想先看懂 Agent 应用到底由哪些模块组成,LangChain 是很好的入口。
2026-05-22 10:29:14
356
原创 2026版Java高频面试宝典(八股文+场景题+答案解析)
虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。如果你也想成为一名好的架构师,那或许以上这份Java 成长笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。需要获取得话可以点击下方名片免费领取。
2026-05-21 11:06:10
389
原创 一次 JVM OOM,资深工程师应该如何完整复盘?
一次 JVM OOM 的完整复盘,不是为了证明谁写错了代码,而是为了回答系统为什么允许问题发展到故障级别。普通处理方式关注“怎么恢复”。更成熟的处理方式关注“为什么发生、为什么没提前发现、为什么影响扩大、下次如何更早拦住”。如果团队能围绕 OOM 建立现场采集、时间线分析、对象来源定位、容量评估和改进闭环,那么这次故障就不只是一次事故,而会变成系统稳定性能力的一次升级。
2026-05-21 11:03:07
204
原创 为什么Redis能称霸缓存界?揭秘其每秒10万+读写的核心技术
极致的场景适配+全方位的技术取舍+精细化的工程优化。它以纯内存存储为硬件底座,彻底消除磁盘IO的物理性能瓶颈;以单线程事件驱动为执行核心,规避多线程锁竞争、上下文切换的所有隐性损耗;以epoll I/O多路复用为并发引擎,让单线程突破百万连接并发上限;以自研自适应数据结构为存储支撑,极致平衡内存占用与读写性能;以全方位工程优化打磨细节,消除所有性能短板,形成一套无短板、高协同、可落地的高性能技术体系。Redis的成功,从来不是单一技术的胜利,而是极简设计思想的极致落地。
2026-05-21 11:01:54
221
原创 2026年大厂Java面试高频场景题 + 八股文(万字干货,纯手工硬核整理)
Java 不仅吸收了 C++的优点,还摒弃了 C++里难以理解的多继承、指针等概念,因此 Java 语言具有功能强大和简单易用两个特征。。所以现在选择 Java 的小伙伴也是非常的多,导致了现在的竞争压力非常的大,逐步出现了僧多粥少的情况!另一个就是受不可抗力原因,很多中小型互联网企业都面临了倒闭,整顿,所以就出现了“面试造火箭,入职拧螺丝”
2026-05-20 10:14:30
256
原创 Spring Boot 做 RAG 文档上传:1GB 文件会不会打爆内存?
做 RAG 系统时,文档上传很容易被低估。普通系统里,上传文件可能只是保存附件。
2026-05-20 10:11:03
186
原创 字节面试官:你知道Claude Code的多Agent实现机制吗?
父Agent拉起两个子Agent,每个子Agent拿着父Agent给它的那一小段指令,在一个全新的、干净的上下文窗口里开始工作。如果没有,它加锁、修改、解锁。他问的是你能不能理解,当AI从一个人变成一个团队时,它内部需要怎样的调度架构、怎样的通信协议、怎样的防御机制,才能让一群“易犯错、会偷懒、会忘记自己说过什么”的数字员工,协同产出一套真正能上线的代码。它的设计哲学极其粗暴且有效:**把一个大任务拆成几个互不相关的子任务,每个子任务扔给一个独立的子Agent,它干完活就滚蛋,不要回来跟父Agent扯皮。
2026-05-20 10:10:25
305
原创 每次重启能救下几十万个请求:Cloudflare 如何用 Rust 实现零停机升级
蛇蜕皮,是为了生长。旧皮脱落的那一刻,蛇并没有停止存在——它只是换上了新的外壳,继续前行。给自己的零停机升级库起名叫,就是取自这个意象。这个库在 Cloudflare 内部生产环境中运行了五年,覆盖全球 330 多个数据中心,今年正式开源。这篇文章就来聊聊它解决了什么问题,以及它是怎么解决的。
2026-05-20 10:08:15
182
原创 2026最新Java后端面试题:八股文+场景题+详细答案(建议收藏)
不论是技术经理还是架构师,没有绝对地说哪条路是对还是错,适合自己才是最重要。小公司的可能没有架构师这个概念,大公司的架构师职位又不是那么容易拿下。但不管怎样,不断去学习新的技术,提升自己的层次是很有必要的,无论你在哪一家公司,过硬的技术水平才能吃得开。
2026-05-19 11:13:37
316
原创 第三阶段:JVM 内存结构 (运行时数据区)
因为Java跑在JVM里,C/C++跑在操作系统的直接环境里,它们的数据结构、内存管理完全不同。JNI定义了一套规范,让Java能够安全地调用C/C++函数,也允许C/C++代码调用Java的对象和方法。在Java中,有些底层操作(比如直接操作操作系统内存、调用硬件接口、极高效率的数学运算等)是Java语言本身做不到或效率不够的。如果在极高并发的场景下,1000 个线程同时要在堆里划分内存空间来创建对象,为了避免指针碰撞(大家抢同一块内存),肯定要加同步锁。做查询,所以拿到的 Value 自然是不同的。
2026-05-19 11:11:28
305
原创 线程死锁:程序员的“鬼打墙“,如何破解?
想象这个场景:你在餐厅吃饭,左手拿刀,右手拿叉。你朋友也来吃饭,但他先拿走了叉,然后伸手来拿你的刀。你不给刀,因为你需要叉才能吃饭。他也不给叉,因为他需要刀才能吃饭。你们俩都吃不上饭,僵持到地老天荒。这就是死锁!在多线程编程中,当两个或多个线程互相等待对方释放资源时,程序就会永远"卡住"。
2026-05-19 11:09:30
305
原创 一张 120GB 的 MySQL 表,没删一行数据,瘦到了 84GB
有张用户扩展信息表,几千万行,数据文件大概 120GB。重新设计了一遍字段类型,同样的数据装进去只有 84GB,少了 30%,查询也快了。变的不是数据,是列的定义。
2026-05-19 11:07:59
303
原创 2026 Java面试八股文·终极背诵版(纯干货,超详细,建议收藏)
而且程序员在应聘时更是需要经历层层面试。俗话说,磨刀不误砍柴工,做好面试前的准备工作可以帮助大家更好地应对面试官的问题以及面试中的突发情况。这份PDF文档通过大量真实案例,全面总结了Java面试中的各个知识点和问题,给出了标准答案,还提供了一些面试技巧。相信通过认真学习,大家一定可以在面试中表现出色,提高自己通过面试的概率!
2026-05-18 10:31:53
388
原创 Java 流程编排新范式 Solon Flow:一个引擎,七种节点,覆盖规则/任务/工作流/AI 编排全场景
做过复杂业务的 Java 开发者,大概都经历过这样的噩梦:一个订单处理方法,从最初的 50 行,经过三轮需求迭代,膨胀到 500 行。把散落在代码各处的业务逻辑,抽象为一个个独立的"节点",然后用声明式的方式定义它们的执行顺序和分支条件。这样既解耦了代码,又让业务规则一目了然,更重要的是——规则的变更不再需要修改 Java 代码、走完整的发版流程。这意味着你可以在不修改引擎代码的前提下,为节点注入角色信息、表单定义、超时策略、重试次数等业务元数据,实现高度的定制化。审批流是流程编排的经典场景。
2026-05-18 10:29:55
176
原创 Java 流程编排新范式 Solon Flow:一个引擎,七种节点,覆盖规则/任务/工作流/AI 编排全场景
做过复杂业务的 Java 开发者,大概都经历过这样的噩梦:一个订单处理方法,从最初的 50 行,经过三轮需求迭代,膨胀到 500 行。把散落在代码各处的业务逻辑,抽象为一个个独立的”节点”,然后用声明式的方式定义它们的执行顺序和分支条件。这样既解耦了代码,又让业务规则一目了然,更重要的是——规则的变更不再需要修改 Java 代码、走完整的发版流程。一个订单需要经过主管和总监两级审批,但审批人不是实时在线的,流程需要在中途”暂停”,等审批完成后再”继续”。),运行时由驱动器读取并执行对应的权限检查。
2026-05-18 10:02:48
227
原创 2026年Java面试高频1000题(八股文终极版)
10、Elasticsearch 中的节点(比如共 20 个),其中的 10 个选了一个master,另外 10 个选了另一个 master,怎么办?1、elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段。,微服务,大数据,算法,项目,设计模式等,篇幅足足近2千页,面试必不可少——刷题!15、在 Elasticsearch 中,是怎么根据一个词找到对应的倒排索引的?20、MySQL 的 drop、delete、truncate区别?
2026-05-17 11:06:45
336
原创 踩坑实录:读写分离导致批量删除逻辑问题
这次排查过程给我带来了重要警示:有时不符合预期的现象并非源于代码逻辑问题,而是由依赖项的特性导致。我们需要具备全局意识,从整体架构出发分析问题,否则仅局限于代码层面将难以发现根本原因。
2026-05-17 11:03:36
212
原创 AI 都能写 SQL 了,程序员还有必要苦练手写 SQL 吗?
AI 时代,更要打磨基本功。AI 是放大器,不是替代品。你基本功越扎实,越能驾驭 AI;基本功不牢,AI 只会让你更快翻车。
2026-05-17 10:59:26
207
原创 Spring-Bean的单例和你理解的单例不一样
有人在@Service逻辑上没有语法错误,本地测试单线程跑也没问题。上线并发一起来,偶尔通知发到了错误的用户——因为线程 A 刚把写成 1001,线程 B 紧接着把它覆盖成 1002,线程 A 继续跑到send的时候读到的是 1002。这个 bug 的根源在于对”Spring 单例”的误解。
2026-05-17 10:55:18
388
原创 Java AI 框架选型:LangChain4j 还是 Spring AI?
DefineKernelFunction(name = "getWeather", description = "获取指定城市的天气信息")@KernelFunctionParameter(name = "city", description = "城市名称") String city) {return city + "今天晴,25°C";@DefineKernelFunction(name = "searchFlights", description = "查询航班信息")
2026-05-17 10:54:09
423
原创 2026秋招Java面试高频1000题,背完直接拿大厂Offer!
1. 技术面答题技巧问题一:系统设计题问"如何设计XX系统",先扯高可用三要素(冗余、负载均衡、故障转移)问题二:被问"为什么要用而不用HashMap",先提分布式架构和持久化问题三:遇到源码分析不会,就扯Spring的扩展性设计问题四:被问项目难点,就说"曾经遇到OOM问题,通过jstack定位到线程阻塞"问题五:不会就聊"根据业务场景做技术选型"2. 别被面试官带偏节奏听到"你说的这个方案有考虑过XX问题吗",别慌,先承认可能存在不足,再补充"在实际业务中我们会通过监控和降级方案保障"
2026-05-15 10:48:59
326
原创 背了那么久的慢 SQL 八股,不如动手跑一遍 EXPLAIN
之前写了一篇关于慢请求排查的实战记录(传送门),本来以为把 Arthas 追调用链、排查 O(n²) 循环什么的讲清楚就差不多了。但写完之后总觉得少了点什么。回想自己背面试题的时候,”深分页为什么慢”、”子查询为什么不如 JOIN”、”索引失效的场景有哪些” 这些问题,能说得头头是道。可真要我解释清楚到底慢在哪里、具体慢多少,我发现自己其实也就知道个大概。所以趁周末,我搭了个测试环境,自己动手跑了一遍 EXPLAIN,把那些背烂了的八股一个个验证了一遍。纸上得来终觉浅,绝知此事要躬行。 ——古人诚不我欺。面
2026-05-15 10:37:17
412
原创 MySQL CPU飙到680%:一次「僵尸查询」引发的雪崩
Threads_connected | 487 | <-- 正常值应该在50-100左右。- 多个查询Time超过1800秒,状态为Locked/metadata lock。3. "Locked"/"metadata lock" 和CPU飙升有什么关系?图1:MySQL CPU飙升趋势(60% → 680%,约10分钟)从60%到680%,只用了5-10分钟。| Slow_queries | 1247 | <-- 异常偏高。- MySQL CPU从60%飙升到680%,5-10分钟内。
2026-05-15 10:36:12
371
原创 java里的web请求用的是进程还是线程,答线程,面试官:回去等消息吧
在jdk17之后,如果启用了虚拟线程,那么web请求并不严格对应到某个线程,而是由jvm统一调度到一个虚拟的线程上。虚拟线程简单来讲,就是把以前系统级别的线程,优化为了jvm级别的线程。系统内核调度的线程与jvm内核调度的线程,少了一层,好处自然是效率更高了。使用top -H -p 命令可以看到线程,可以看到这个进程里有300个线程,全在休眠,因为现在只是启动了并没有人请求。上,可以算是线程中的线程,他也共享内存,有状态,在java代码里是Thread的子类,所以把它叫做线程也没毛病。
2026-05-15 10:34:11
173
原创 2026最新Java面试八股文整理(附高清思维导图+代码示例,纯干货无废话)
面试,跳槽,每天都在发生,跳槽,更是很常见的,对于每个人来说,跳槽的意义也各不相同,可能是一个人更向往一个更大的平台,更好的地方,可以通过换一个环境改变自己的现状。而我正是其中一员,投了十多家互联网公司,目前 已收到五个 Offer,其实跳槽是把双刃剑,有好也有坏,要看你是因为什么原因跳槽。如果说你即将准备跳槽,是否准备充足了呢?小编即将分享的正是这些面经分享和我的成长笔记。
2026-05-14 10:33:28
331
原创 同事说Spring循环依赖很简单,直到我们线上炸了...
Service@Autowired// A依赖B@Service@Autowired// B依赖AA等B,B等A,死循环。你在等女朋友出门女朋友在等你开车你俩在楼下等了对方一晚上。
2026-05-14 10:11:59
195
原创 从区间锁到行锁:一次高并发写入死锁治理实战
的可重复读锁模型下,如果查询命中的是唯一索引上的一个不存在的键值,数据库可能会在相邻索引区间上加 gap lock 或 next-key lock,以阻止其他事务在该区间插入数据。• 废弃 on duplicate key update 的写法,改为显式 insert,在唯一键冲突时回退到 update,把高风险死锁降级为可控的并发竞争。这一步的价值在于,把原来的“查不到记录”转化为“查得到记录”。问题在于,这段逻辑在“记录已经存在”的情况下通常没有问题,而真正的高风险点恰恰出现在“记录不存在”的分支。
2026-05-14 10:11:18
204
原创 面试总被问 Java内存模型和 volatile,为什么总答不到点子上?
多线程之间如何实现通信?也就是线程间依靠什么机制进行数据交换。多线程之间如何实现同步?也就是如何管控不同线程间任务执行的先后顺序。共享内存与消息传递而 Java 采用的正是共享内存模型。JMM 定义了线程与主内存的数据交互规范,依靠八大原子操作完成变量读写同步。synchronized 通过加锁、释放锁,既能保证线程互斥,又能刷新内存、保障可见性。volatile 借助内存屏障禁止指令重排序,写变量强制刷新到主存,读变量清空本地缓存;
2026-05-14 10:10:18
413
原创 2026最新版 | Java面试题超全汇总(附答案与解析)
不论是笔试还是⾯试都是有章可循的,我这个 “ 有章可循 ” 说的意思只是说应对技术⾯试是可以提前准备。2.1.10. String StringBuffer和 StringBuilder的区别是什...2.3.17.说说synchronized关键字和volatile关键字的区别。2.3.10.为什么我们调用start(方法时会执行run()方法,...我觉得这种⽅法 特别极端,⽽且在稍有⼀点经验的⾯试官⾯前是根本没有⽤的。2.1.13.在Java中定义一个不做事且没有参数的构造方法...
2026-05-13 10:35:20
412
原创 SpringBoot4.X: 彻底消灭 NullPointerException
编译器变成安检员,在代码运行前就拦截所有"携带违禁品(null)"的行为。注解体系不是要彻底消灭null值——null本身是有用的,表示"值不存在"这一合理业务场景。但 Spring 团队认为,真正的错误并非 “null” 的存在,而是。,则其提供的好处就不再存在,那甚至去掉此功能更好(至少代码量少一点,编译的开销也少一些)",将"可能为空"从隐性知识变为显性契约,从依赖开发者的细心变为依赖工具的保障。值的变量也标记了明确的注解(至少你应该明确了为什么允许。,语法结构上更加规范,并有相应错误检查。
2026-05-13 10:32:00
210
原创 2026版Java面试“百科全书”(附答案+扩展解析),收藏这一篇就够了
作为一个资历不浅的 Java 开发,这几年我面试过不少人。发现大多数面试者,虽然看起来工作努力,但他们表现出来的能力水平,却不足以通过面试,或拿到期望的薪资。做了几年技术,开发了一些业务应用,但没有思考过这些技术选择背后的逻辑。所以,我很难定位他们日后的成长潜力,也不会放心把有一定深度的任务交给他们。事实上,当面试者无法完整、清晰地描述自己所开发的系统或使用的相关技术时,面试官就会怀疑他是否具备解决复杂问题、设计复杂系统的能力。
2026-05-12 10:57:17
340
原创 为什么高级工程师会说:Cache 是一种抽象,而不是优化
很多工程师对 Cache 的理解始终停留在“空间换时间”。但做久了系统你会发现,Cache 最难的地方从来不是命中率,而是一致性语义——在多大概率下、在什么范围内、允许返回多旧的数据,并且如何让整个系统在这个承诺上稳定运行。不要把缓存当成补丁,去掩盖后端的不足。要从第一天起,就把它作为系统架构的一部分去设计。下次再有人说“这里顶不住了,加个 Redis 吧”,你可以告诉他:你真正需要的,可能不是一个 Redis,而是一个Store接口和一套存储抽象。MySQL。
2026-05-12 10:53:47
362
原创 JavaScript 多线程编程:Web Worker 与 Promise 的优雅结合
Web Worker 是浏览器为 JavaScript 提供的真正的多线程能力,它运行在操作系统级的独立线程上,拥有自己的事件循环和内存空间,通过安全的消息传递与主线程通信。利用它,我们可以将耗时的计算任务平稳地迁移到后台,保持网页的流畅与响应。将 Worker 的异步消息封装为Promise更是点睛之笔。通过任务 ID 和临时监听器的设计,我们既能获得线性的代码风格,又能自然地传播错误,还能方便地实现并发控制(等)。
2026-05-11 10:26:45
327
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅