面试突击
文章平均质量分 85
东东的脑洞
滨城程序员一枚,欢迎五湖四海的朋友一起交流~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【面试突击】TCP 四次挥手详解
TCP四次挥手是可靠关闭连接的关键机制。第一次挥手客户端发送FIN请求关闭;第二次服务器回复ACK确认;第三次服务器发送FIN通知关闭;第四次客户端回复ACK确认。由于TCP全双工特性,ACK和FIN需要分开发送,确保双方独立关闭数据流。客户端在TIME_WAIT状态等待2MSL,防止报文丢失。该机制体现了TCP协议的严谨性,保障连接可靠终止。原创 2025-12-28 11:01:57 · 702 阅读 · 0 评论 -
【面试突击】HTTPS 完整工作流程详解
HTTPS(HTTP Secure)是在 HTTP 基础上加入 TLS/SSL 加密层的安全协议。它通过非对称加密、对称加密和数字证书三大技术,保障互联网通信的安全性。CA(Certificate Authority)是证书颁发机构,相当于互联网的"公安局",为网站颁发"数字身份证"。全球知名 CA 包括:DigiCert、Let’s Encrypt、GlobalSign、Sectigo 等。HTTPS 通过 TCP 三次握手建立连接,然后通过 TLS 握手完成密钥协商和身份验证。原创 2025-12-27 14:55:11 · 573 阅读 · 0 评论 -
【面试突击】深入理解 TCP 三次握手与 HTTP 协议演进
HTTPS(HTTP Secure)是在 HTTP 基础上加入 TLS/SSL 加密层的安全协议。它通过非对称加密、对称加密和数字证书三大技术,保障互联网通信的安全性。原创 2025-12-26 17:44:15 · 899 阅读 · 0 评论 -
【面试突击】Redis 哨兵(Sentinel)完全指南:从原理到实战
Redis哨兵(Sentinel)是官方提供的高可用解决方案,用于监控主从架构并实现自动故障转移。当主节点故障时,哨兵能自动完成故障检测、主从切换和客户端通知,避免传统架构需要手动干预的问题。哨兵通过定期PING命令监控节点状态,当主节点无响应时先标记为主观下线,经其他哨兵确认后变为客观下线,随后选举Leader哨兵执行故障转移。关键配置包括quorum(法定人数)设置和哨兵数量选择(推荐奇数个),并遵循优先级、复制偏移量等规则选择新主节点。哨兵之间通过主节点的发布订阅机制自动发现彼此,共同维护Redis集原创 2025-12-26 14:30:13 · 855 阅读 · 0 评论 -
【面试突击】Redis 主从复制核心面试知识点
Redis主从复制是一种数据同步机制,通过一主多从架构实现数据冗余、读写分离和高可用性。核心特点包括:主节点负责写操作,从节点只读;异步数据同步;支持全量复制(首次连接或主节点重启)和部分复制(短暂断线恢复)。复制流程涉及运行ID、复制偏移量和复制积压缓冲区等关键概念,确保数据一致性。该机制通过数据冗余保障可靠性,配合读写分离提升性能(如1主3从可达40万QPS),并为故障转移和负载均衡提供基础,是构建高可用Redis系统的重要组件。原创 2025-12-26 10:54:35 · 232 阅读 · 0 评论 -
【面试突击】Kafka 核心面试知识点
Kafka是一个分布式流处理平台,具备消息队列、存储系统和流处理三大核心能力。其核心特点包括高吞吐量、低延迟、持久化、分布式和可靠性。主要应用场景涵盖日志收集、消息系统、用户活动追踪等。Kafka架构由Producer、Consumer、Broker等组件构成,采用分区机制提高并发和负载均衡,副本机制(Leader/Follower)确保高可用。消息流转过程涉及生产消息的选择分区、同步副本,以及消费消息的分区分配和offset提交。分区策略包括指定分区、Key哈希和轮询,副本通过ISR机制保持同步。Kafk原创 2025-12-26 10:51:28 · 277 阅读 · 0 评论 -
【面试突击】MySQL 查询优化核心面试知识点
MySQL查询优化核心知识点包括索引优化和SQL语句优化两大方面。索引优化部分详解了B+Tree、Hash等索引类型及适用场景,索引分类(单列/联合、主键/唯一/普通等),以及索引优化规则(最左前缀原则、索引失效场景、索引覆盖和索引下推)。SQL语句优化则强调了避免SELECT *、小表驱动大表原则、用JOIN替代子查询、分页优化等技巧。这些知识点是MySQL性能调优的核心内容,能有效提升查询效率,减少系统资源消耗。原创 2025-12-25 15:33:50 · 256 阅读 · 0 评论 -
【面试突击】PostgreSQL vs MySQL 索引架构深度对比:聚簇索引 vs 堆表
本文深入对比了PostgreSQL和MySQL在索引架构上的核心差异。MySQL采用聚簇索引,数据按主键排序存储,主键查询只需一次索引查找;而PostgreSQL使用堆表结构,数据无序存储,所有索引都指向数据物理位置,查询需要额外访问堆表。通过图书馆管理系统的生动类比,文章阐释了两种架构的工作机制:MySQL类似按书号排序的书架,PostgreSQL则像无序仓库配合索引册。文中详细解析了PostgreSQL堆表和索引的存储原理,包括TID概念和索引结构,帮助读者理解两者在查询性能、更新成本等方面的差异。这种原创 2025-12-25 15:31:00 · 974 阅读 · 0 评论 -
【面试突击】Spring Security + OAuth2 密码模式实战:Gateway 作为网关与资源服务器,Auth 作为认证服务器(完整认证链路解析)
本文介绍了一种基于Spring Security和OAuth2密码模式的微服务认证鉴权方案。Auth服务作为认证服务器负责Token签发与校验,Gateway同时承担网关和资源服务器角色。文章详细梳理了从客户端登录到Token生成、校验及用户信息透传的全流程,包括关键组件如BasicAuthenticationFilter、ProviderManager、UserDetailsService和TokenStore的执行顺序。方案采用Redis存储Token,通过Gateway实现Token远程校验和用户信息原创 2025-12-24 15:44:13 · 1438 阅读 · 0 评论 -
【面试突击】深度解析:Redis 与数据库(DB)的一致性方案
懒加载(Lazy Loading):更新后的数据可能很久才被读一次。直接删除,等下次读时再加载,能节省内存资源。安全性(防止脏数据覆盖)如果两个线程同时写,更新缓存可能导致并发问题(线程 A 先写,线程 B 后写,但 B 的网络慢,导致 A 的旧值覆盖了 B 的最新值)。删除操作是幂等的,能显著降低这种竞争风险。“通常我们采用模式,即先更新 DB 再删除缓存。为了应对极端情况下的主从延迟,可以配合延时双删。如果业务对数据一致性要求极高,我们会通过Canal 监听 Binlog。原创 2025-12-24 09:33:15 · 728 阅读 · 0 评论 -
【面试突击】MySQL 索引必会:B+Tree、回表、覆盖索引、最左前缀、索引下推(ICP)
本文深入解析MySQL InnoDB索引的核心机制,重点剖析B+Tree索引结构、聚簇索引与二级索引的区别。详细解释了回表查询的原理及其性能问题,并介绍如何通过覆盖索引避免回表。深入讲解联合索引的最左匹配原则及其实现原理,包括范围查询对索引使用的影响。特别介绍了索引下推(ICP)技术如何优化查询性能。文章还提供了索引设计实战建议,帮助开发者合理设计索引结构,并通过EXPLAIN分析查询执行计划。这些知识对MySQL性能优化和面试准备都具有重要价值。原创 2025-12-22 15:05:31 · 793 阅读 · 0 评论 -
【面试突击】Spring IOC:Bean 创建流程全解析(从 getBean 到 AOP 代理生成)
本文深入解析了Spring IOC容器中Bean的创建流程。核心流程包括:1)通过doGetBean入口检查缓存或触发创建;2)doCreateBean四步生产线:实例化生成原始对象、属性填充注入依赖、初始化执行回调、注册销毁方法;3)AOP代理在初始化阶段的BeanPostProcessor.after环节生成;4)最终成品存入单例池。特别强调了循环依赖处理通过三级缓存机制实现,以及AOP代理的生成时机。整个流程将BeanDefinition转化为可用的Bean实例(可能是代理),体现了Spring依赖注原创 2025-12-22 15:02:59 · 840 阅读 · 0 评论 -
【面试突击】深度进阶:Spring AOP 代理机制、失效场景与切面顺序全解析
本文深入解析Spring AOP三大核心问题:代理机制、失效场景与切面顺序。Spring AOP基于动态代理,默认JDK代理(需接口)或CGLIB代理(继承实现)。常见失效场景包括内部调用(this指向原始对象)、方法权限问题和非Spring Bean对象。多切面执行顺序遵循"洋葱模型",@Order值越小优先级越高,入站先执行@Before,出站后执行@After。文章还总结了AOP五大术语:切面、切入点、通知、连接点和代理,建议合理使用AOP,避免过度增加调试难度。原创 2025-12-22 14:24:43 · 679 阅读 · 0 评论 -
【面试突击】JVM 内存结构和 JDK7 / JDK8 差异,用一次就能讲清楚
本文对比了JDK7和JDK8的JVM内存结构差异,重点解析了方法区的实现变化:JDK7使用堆内的PermGen存储类信息,而JDK8改用本地内存的Metaspace。文章还概述了堆、栈、直接内存等关键区域的功能及常见问题,提供了清晰的总览表。通过简洁的语言和对比表格,帮助读者快速掌握核心知识点,应对面试和排查OOM问题。原创 2025-12-22 10:05:56 · 1094 阅读 · 0 评论 -
【面试突击】JAVA基础知识-线程池与参数调优
本文深入解析Java线程池的核心参数与调优策略,重点围绕ThreadPoolExecutor的构造参数展开。首先阐明使用线程池的必要性:降低线程创建开销、控制并发数、提升系统稳定性。随后详细解析corePoolSize、maximumPoolSize等关键参数,对比ArrayBlockingQueue、LinkedBlockingQueue等不同队列的特性与适用场景,分析四种拒绝策略的差异。最后指出不推荐直接使用Executors工厂方法的原因:其默认使用无界队列存在OOM风险。文章为Java线程池的合理配原创 2025-12-20 09:15:36 · 690 阅读 · 0 评论 -
【面试突击】JAVA基础知识-GC 机制与分代回收
Java GC机制与分代回收 Java采用自动垃圾回收(GC)机制管理堆内存,通过可达性分析算法判断对象存活状态。核心GC算法包括标记-清除、标记-整理和复制算法,各具特点:标记-清除简单但会产生内存碎片;标记-整理解决碎片问题但成本较高;复制算法适合存活率低的区域但空间利用率低。 JVM采用分代收集策略,将堆分为新生代和老年代。新生代使用复制算法,包含Eden区和两个Survivor区,通过Minor GC快速回收短期对象;老年代存放长期存活对象,采用标记-清除或标记-整理算法进行Major GC。对象在原创 2025-12-20 09:15:16 · 948 阅读 · 0 评论 -
【面试突击】JAVA基础知识-volatile、synchronized与ReentrantLock深度对比
Java并发编程核心机制摘要: volatile关键字: 保证变量可见性(写立即刷新到主存,读直接从主存获取) 禁止部分指令重排序 不保证原子性(如i++仍需配合锁或原子类) 典型应用场景: 线程状态标志位(单写多读) 对象引用的安全发布(如单例模式DCL) 配置热更新 synchronized vs ReentrantLock对比: synchronized:语法简单自动释放,不支持超时/中断 ReentrantLock:需手动释放,支持可中断、超时、公平锁及多条件队列 两者都支持可重入,但Reentra原创 2025-12-19 14:42:22 · 949 阅读 · 0 评论 -
【面试突击】JAVA基础知识-集合
摘要:JDK1.8的HashMap采用数组+链表+红黑树结构,优化了链表尾插和红黑树转换机制,核心参数包括默认容量16、负载因子0.75等。通过hash扰动和位运算定位桶,put/get流程高效,扩容时利用位运算拆分节点。线程不安全,推荐使用ConcurrentHashMap。ConcurrentHashMap1.8通过桶粒度锁和CAS实现线程安全,get无锁,put仅锁当前桶,支持多线程扩容,相比1.7分段锁更高效。两者均不允许null键值,ConcurrentHashMap在并发场景下性能更优。原创 2025-12-19 14:40:59 · 1149 阅读 · 0 评论
分享