- 博客(43)
- 收藏
- 关注
原创 大厂面试实录:Spring Boot源码深度解析+Redis缓存架构+RAG智能检索,谢飞机的AI电商面试之旅
不仅要会用,还要理解自动配置、启动流程等底层原理Redis:从数据结构到底层实现,从单机到集群,从应用到源码,需要全面掌握AI技术:RAG、向量数据库、大模型应用是未来趋势,需要系统学习给求职者的建议基础要扎实,源码要阅读理论结合实践,多写代码关注前沿技术,持续学习面试时诚实回答,不会就说不知道,但要有学习的态度希望这篇文章能帮助到正在准备面试的同学们!加油!参考文档Spring Boot官方文档: https://spring.io/projects/spring-boot。
2026-01-06 16:02:56
979
原创 Spring Boot启动流程源码深度解析:电商订单系统面试实战
启动入口:SpringApplication.run()方法是整个启动过程的起点环境推断:根据classpath判断应用类型(SERVLET、REACTIVE、NONE)上下文刷新:refresh()方法是核心,负责创建BeanFactory、注册Bean定义、实例化Bean自动配置:@EnableAutoConfiguration通过@Conditional系列注解实现条件化配置依赖注入:处理Bean之间的依赖关系,解决多实现Bean的问题。
2026-01-04 18:53:26
712
原创 Spring Security + 微服务架构 + 金融风控:面试官与谢飞机的3轮硬核对话
给小白的建议:打好基础:先熟练掌握Spring Security的基本概念和用法,理解认证授权流程动手实践搭建一个完整的OAuth2认证服务实现JWT Token的生成和校验配置Spring Cloud Gateway的统一认证深入学习学习OAuth2的各种授权模式和场景理解JWT的结构和安全实践掌握分布式链路追踪的使用性能优化学习Redis缓存的使用掌握限流算法和实现了解高可用架构设计业务理解理解金融风控的业务场景熟悉多租户架构设计关注安全合规要求。
2026-01-02 18:55:43
979
原创 Spring Security源码深度解析:从FilterChainProxy到SecurityContext的认证流程
过滤器链的核心协调者:安全上下文的持久化管理:用户名密码认证的核心过滤器:认证管理器的委托实现:基于ThreadLocal的安全上下文持有者多种认证方式扩展:通过自定义Filter和Provider支持多种认证性能优化:缓存、异步、无状态认证等优化策略Spring Security的设计遵循了单一职责原则开闭原则依赖倒置原则等设计原则,通过过滤器链模式策略模式模板方法模式等设计模式,实现了高度可扩展的安全认证架构。掌握Spring Security的核心过滤器链机制。
2026-01-02 18:51:59
828
原创 Spring Cloud微服务架构电商场景源码解读:面试官与谢飞机的「灵魂拷问」
服务拆分:按照业务边界划分微服务,每个服务独立演进服务调用:Feign声明式HTTP客户端,结合Ribbon负载均衡容错保护:Resilience4j熔断、限流、降级,保证系统稳定性缓存优化:Redis多级缓存,解决穿透、击穿、雪崩问题消息驱动:Kafka异步解耦,提高系统吞吐量和可靠性安全认证:OAuth2 + JWT混合认证,兼顾用户体验和安全性监控运维:Prometheus + Grafana + ELK构建可观测性体系。
2026-01-02 18:26:51
531
原创 Spring Cloud+Redis+Kafka高并发电商微服务系统源码深度解读
微服务架构:服务拆分、注册发现、API网关、服务间通信缓存策略:缓存穿透/击穿/雪崩解决方案、Redis持久化数据一致性:分布式事务(Seata)、本地消息表、事务消息高并发设计:Kafka削峰填谷、库存原子扣减、限流熔断异步处理:事件驱动、消息队列、最终一致性这些技术点在实际的电商系统中都有广泛应用,掌握这些原理和实现方式,能够帮助我们设计和构建稳定、高性能的微服务系统。希望这篇文章能够帮助大家更好地理解电商微服务架构的核心技术!参考资料Spring Cloud官方文档。
2026-01-02 18:24:01
809
原创 Redis缓存雪崩,击穿,穿透
本文主要介绍和梳理 redis 缓存雪崩,击穿,穿透的问题我们使用 redis 缓存主要是为了减少数据库访问的压力,因此三种情况的解决思路一定是围绕如何减轻 MySQL 压力来的。
2025-11-24 17:31:59
282
原创 互联网大厂Java求职面试实战:谢飞机的三轮问答与代码案例
王大瓜,1993年出生于吉林省长春市榆树市一个农村,作为互联网大厂的Java求职者,他参加了一场技术面试。面试官严肃且专业,主问Java及相关技术栈,谢飞机则是活跃的程序员形象,擅长简单回答,复杂问题有时答得模糊。本文将通过三轮提问,呈现技术场景与代码案例,帮助读者理解关键技术。
2025-11-20 21:26:36
599
原创 互联网大厂Java求职者面试实录:严肃面试官 vs 搞笑水货程序员谢飞机
面试地点:某知名互联网大厂技术部面试者:谢飞机(程序员,略带幽默但技术稍显薄弱)面试官:严肃且专业的资深工程师面试围绕Java核心技术栈展开,结合业务场景为电商平台进行技术能力考察。
2025-11-20 21:20:45
421
原创 互联网大厂Java面试:面试官与程序员谢飞机的搞笑对话
Java并发包(JUC)提供了丰富的并发工具,如ReentrantLock用于替代synchronized,CountDownLatch用于实现线程间协调,线程池(ExecutorService)用于管理线程的创建与销毁。SpringBoot简化了Spring应用的开发,无需复杂的XML配置,提供嵌入式服务器,启动快,是微服务开发的理想选择。哎呀,这个好复杂,我只知道有堆和栈,其他的还真没怎么关注过。嗯,里面有好多线程,反正就是帮我省事儿的东西,哈哈。好的,谢飞机,今天的面试就到这里,你回去等通知吧。
2025-11-18 20:20:02
320
原创 搞笑与严肃并存:谢飞机的互联网大厂Java面试记
好,接下来我们聊聊Spring框架。:JVM的内存模型嘛,就是……:Spring Boot就是Spring的弟弟,年轻有活力,跑得更快。:Redis的持久化嘛。就像一个记性不错的兔子,睡觉前记下今天的事……那说说Java中的多线程吧,线程池是怎么工作的。:MyBatis嘛,就是SQL的翻译官,把SQL变成Java的语言?:我们再深入点,聊聊Redis吧。:工厂模式就是一个工厂,生产各种对象,像生产玩具的小工厂?:Docker就是一个大盒子,装各种程序,想去哪就去哪?:好的,谢飞机,你的回答非常有趣?
2025-11-18 20:14:55
405
原创 谢飞机的Java面试奇遇记
线程池通过重用线程来减少每个任务的执行时间,避免频繁创建和销毁线程的开销。:不错,那你能详细讲讲HashMap的底层实现吗,比如说它是怎么解决哈希冲突的?:我们来聊聊Spring,你知道Spring的AOP是干嘛用的吗?:我们先从简单的开始,Java中的HashMap是如何工作的?:哦,这个我知道,就是一个用来储存键值对的东西,哈哈。:哎呀,这个我知道,是用来做切片的,哈哈,做切面编程。启动流程是怎么样的?:那我们说说线程池吧,Java线程池的优势是什么?:动态SQL,就是可以...动来动去的SQL吧。
2025-11-13 14:12:04
354
原创 009、单双链表及其反转
将方法对应的形参传入,当其为引用传递时,在内存中也会创建一个副本变量,但是与按值传递不同的是这个副本变量不会被直接复制,而是会指向与传入参数所指向的相同的地址,这样两者在最初就有了相同的初始值,后续函数的操作都是针对这个副本变量的,但是由于这个副本变量指向了与传入形参所指向的相同地址,所以可以通过副本变量间接修改传入形参所指向地址存储的值。这里照样用一个例子来说明。
2025-11-11 19:31:06
241
原创 006、二分搜索
所谓寻找峰值其实就是寻找数组中的极大值,即一个位置 ans 的数满足 arr[ans] > arr[ans+1] && arr[ans]> arr[ans-1]因此可以使用二分查找快速找到。:这里的峰值可以类比到。
2025-11-09 20:14:40
412
原创 005、对数器
你在网上做笔试,但是前几个测试用例都过了,突然一个巨大无比数据量来了,结果你的代码报错了,如此大的数据量根本看不出哪错了,甚至有的根本不提示哪个例子错了,怎么debug?对数器的门槛其实是比较高的,因为往往需要在两种不同思路下实现功能相同的两个方法,暴力一个、想象中的最优解是另一个。你在网上找到了某个公司的面试题,你想了好久,感觉自己会做,但是你找不到在线测试,你好心烦…你和朋友交流面试题,你想了好久,感觉自己会做,但是你找不到在线测试,你好心烦…1,你想要测的方法a(最优解)
2025-11-09 20:13:19
285
原创 004、选择,冒泡,插入排序
将选择的元素插入到前面已排序的部分合适的位置。:相邻两数两两比较,大的往后面移动。时间复杂度 O (n ^2)时间复杂度 O (n^2)
2025-11-08 13:20:19
192
原创 003、二进制和位运算
与与循环判断条件中的中的 && 的区别是: 位运算的 & 会对每一个位的或都判断一次,而循环判断条件中的 && 只要有一个为 false 后续都不再进行判断。或逻辑,与循环判断条件中的中的 || 的区别是: 位运算的 | 会对每一个位的或都判断一次,而循环判断条件中的 || 只要有一个为 true 后续都不再进行判断。任何一个数字我们传入计算机都会被转为二进制来进行运算,而打印输出时,计算机会自动的将二进制转为我们熟悉的十进制显示出来,如果想看到二进制,就需要我们自定义方法。1、二进制和位的概念。
2025-11-08 13:19:19
260
原创 Redis 哨兵机制详解
Redis 在 2.8 版本以后提供的哨兵(Sentinel)机制,它的作用是实现主从节点故障转移哨兵节点通过 Redis 的发布者/订阅者机制,哨兵之间可以相互感知,相互连接,然后组成哨兵集群,同时哨兵又通过 INFO 命令,在主节点里获得了所有从节点连接信息,于是就能和从节点建立连接,并进行监控了。总体有以下几个大的动作第一轮投票,判断主节点客观下线第二轮投票,选举哨兵 leader哨兵 leader 进行主从故障转移。
2025-11-07 15:58:13
675
原创 JMM(Java 内存模型)详解
Java 内存模型主要定义了对于一个,若一个线程对其执行了,这个线程对这个共享变量的。而可见性是指一个线程对主内存的修改可以及时的被其他线程看到。
2025-11-05 22:19:44
913
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅