摘要: 一、volatile 是什么 volatile是 Java 的一个关键字,是一种同步机制。volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。 当某个变量是共享变量,且这个变量是被 volatile 修饰的,那么在修改了这个变量的值之后,再读取该变量的值 阅读全文
posted @ 2025-08-16 16:55 MuXinu 阅读(224) 评论(0) 推荐(0)
摘要: 1. 卡表(Card Table)简介 卡表是一种写屏障(Write Barrier)技术实现,主要用于追踪堆内存中的**“脏卡”**,也就是记录哪些内存区域发生了写操作,方便 GC 时高效定位需要扫描的对象,避免全堆扫描。 卡表把堆分成固定大小的卡(Card),一般是512字节(具体大小可能不同) 阅读全文
posted @ 2025-08-12 23:36 MuXinu 阅读(8) 评论(0) 推荐(0)
摘要: 1. 什么是意向锁 意向锁(Intention Lock) 是 表级锁,用来表示一个事务接下来打算在某些行上加共享锁(S锁)或排他锁(X锁)。 它本身不会直接锁住数据行,而是为了协调行锁与表锁的共存,帮助数据库快速判断表级锁是否与当前行锁冲突。 核心作用:锁兼容性检测的优化,避免在加表锁时逐行检查。 阅读全文
posted @ 2025-08-10 14:44 MuXinu 阅读(31) 评论(0) 推荐(0)
摘要: CompletableFuture深度解析:Java异步编程的利器 前言 CompletableFuture是Java 8引入的一个强大的异步编程工具,它提供了丰富的API来处理异步任务的组合、链式调用和异常处理。作为Future接口的增强版本,CompletableFuture不仅解决了传统Fut 阅读全文
posted @ 2025-08-08 00:01 MuXinu 阅读(215) 评论(0) 推荐(0)
摘要: 一、什么是ThreadLocal? ThreadLocal是Java中的一个工具类,用于为每个线程提供独立的变量副本。 每个线程通过ThreadLocal对象访问到的变量,都是属于当前线程自己的,互不干扰。 1. 典型用法 public class Example { private static 阅读全文
posted @ 2025-08-06 22:19 MuXinu 阅读(48) 评论(0) 推荐(0)
摘要: synchronized 关键字的实现原理 synchronized 是 Java 中最基础的同步机制,其实现原理涉及多层次的优化和设计。让我们深入探讨其实现机制: 一、JVM 层面的实现基础 1. Java 对象头 (Object Header) 每个 Java 对象在内存中由三部分组成: 对象头 阅读全文
posted @ 2025-08-03 17:36 MuXinu 阅读(164) 评论(0) 推荐(0)
摘要: 一、主从Reactor模式架构概述 1.1 线程模型结构 1.2 职责分工 BossGroup:专门负责接收客户端连接(Accept事件) WorkerGroup:专门负责处理已建立连接的I/O读写操作 二、请求处理的完整流程 2.1 服务端启动和初始化 // ServerBootstrap启动代码 阅读全文
posted @ 2025-08-02 17:30 MuXinu 阅读(23) 评论(0) 推荐(0)
摘要: 前言 G1(Garbage First)垃圾回收器是Oracle在JDK 7中引入的一款面向服务端应用的垃圾回收器,在JDK 9中成为默认的垃圾回收器。G1的设计目标是在保持高吞吐量的同时实现低延迟的垃圾回收,特别适用于大堆内存环境。本文将从理论角度深入分析G1的核心机制和关键概念。 G1的设计理念 阅读全文
posted @ 2025-07-29 20:54 MuXinu 阅读(88) 评论(0) 推荐(0)
摘要: 前言 多版本并发控制(Multi-Version Concurrency Control,MVCC)是现代数据库管理系统中一项核心技术,它允许数据库在高并发环境下提供一致性读取,同时避免读写操作之间的阻塞。MySQL的InnoDB存储引擎正是通过MVCC机制实现了高效的并发控制,本文将深入探讨MVC 阅读全文
posted @ 2025-07-29 20:16 MuXinu 阅读(142) 评论(0) 推荐(0)
摘要: 面试官:我看你简历上写了MySQL,对MySQL InnoDB引擎的索引了解吗? 候选者:嗯啊,使用索引可以加快查询速度,其实上就是将无序的数据变成有序(有序就能加快检索速度) 候选者:在InnoDB引擎中,索引的底层数据结构是B+树 面试官:那为什么不使用红黑树或者B树呢? 候选者:MySQL的数 阅读全文
posted @ 2025-06-09 23:59 MuXinu 阅读(35) 评论(0) 推荐(0)
摘要: 🚀 后端开发工程师必备的 Linux 命令清单(附使用场景) 作为后端开发工程师,Linux 是我们最常打交道的系统。无论你是调试应用、排查问题,还是部署上线,掌握常用 Linux 命令都能极大提升效率。 本文整理了后端开发中最常用的 Linux 命令及典型使用方式,涵盖了 文件操作、进程管理、网 阅读全文
posted @ 2025-06-08 13:22 MuXinu 阅读(70) 评论(0) 推荐(0)
摘要: 本文由 AI 生成,内容仅供参考,请仔细甄别。 Linux 内存查看命令详解:你真的读懂 free 的输出了吗? 在 Linux 系统中,排查内存使用情况是运维和开发经常需要面对的工作,而 free 命令正是最常用、最直观的工具之一。它可以帮助我们快速查看系统的内存使用情况,判断是应用内存泄露、缓存 阅读全文
posted @ 2025-06-08 13:12 MuXinu 阅读(196) 评论(0) 推荐(1)
摘要: 客户端向服务器同步数据的三种常见方式,分别是定时请求(轮询)、长轮询(Long Polling) 和 WebSocket,并对比它们的特点和适用场景。 客户端向服务器同步数据的三种方式 1. 定时请求(轮询 Polling) 概念 客户端以固定时间间隔(如每隔5秒)向服务器发送请求,主动询问是否有新 阅读全文
posted @ 2025-06-07 16:25 MuXinu 阅读(51) 评论(0) 推荐(0)
摘要: 本文由 AI 生成,内容仅供参考,请仔细甄别。 在金融系统中构建一个适用于流处理的流引擎(Stream Processing Engine),需要从高吞吐、低延迟、强一致性、可扩展性、安全性等多个维度考虑。尤其在风控、反欺诈、实时监控场景中,流引擎扮演着极其核心的角色。 一、流引擎的核心组成组件 一 阅读全文
posted @ 2025-06-07 16:04 MuXinu 阅读(79) 评论(0) 推荐(0)
摘要: InfoBox: 中文名:流批一体化 外文名:Stream-batch Integration 学科:数据库,数据管理 实质:流批一体化是指将数据流和数据批处理的计算模型进行统一,使得同一套计算逻辑可以同时应用于流处理与批处理两种模式,且最终结果保持一致。此外,流处理与批处理过程中的数据全程存储在同 阅读全文
posted @ 2025-06-07 16:01 MuXinu 阅读(113) 评论(0) 推荐(0)
摘要: 本文由 AI 生成,内容仅供参考,请仔细甄别。 在数据处理技术领域,流处理(Stream Processing)、批处理(Batch Processing) 和 流批一体(Lambda 架构 / 流批融合) 是三种常见且重要的处理方式,它们在数据的实时性、吞吐量、处理方式和应用场景等方面各有不同。下 阅读全文
posted @ 2025-06-07 16:00 MuXinu 阅读(217) 评论(0) 推荐(0)
摘要: 本文由 AI 生成,内容仅供参考,请仔细甄别。 Kafka 消费者交付语义指的是 Kafka 消费者在处理消息时如何保证消息的可靠性和一致性。这涉及到消息是否被丢失、重复处理或者按顺序消费。 ✅ Kafka 三种交付语义 交付语义 中文解释 含义 At most once 最多一次 消息最多处理一次 阅读全文
posted @ 2025-06-07 15:06 MuXinu 阅读(33) 评论(0) 推荐(0)
摘要: 本文由 AI 生成,内容仅供参考,请仔细甄别。 一、什么是缓存淘汰算法? 缓存空间是有限的,当缓存已满又需要新增数据时,需要一个策略决定“谁被淘汰(evict)”。 二、LRU(最近最少使用) 📌 全称:Least Recently Used 📘 核心思想: 最近最少使用的数据优先被淘汰。 也就 阅读全文
posted @ 2025-06-05 22:05 MuXinu 阅读(194) 评论(0) 推荐(0)
摘要: 本文由 AI 生成,内容仅供参考,请仔细甄别。 一、如何判断一个对象是不是垃圾? ✅ Java 的判断标准:对象是否可达 可达性分析算法(Reachability Analysis):从一组被称为 “GC Roots” 的对象出发,沿着对象的引用链进行遍历,如果一个对象在遍历过程中无法被访问到,就被 阅读全文
posted @ 2025-06-05 21:30 MuXinu 阅读(67) 评论(0) 推荐(0)
摘要: 本文由 AI 生成,内容仅供参考,请仔细甄别。 核心设计目标对比: G1 GC (Garbage-First): 主要目标是在可控的停顿时间(通常几百毫秒以内)下实现高吞吐量。它针对大内存(几十GB)进行了优化,但并非追求极低停顿。 ZGC (Z Garbage Collector): 核心设计目标 阅读全文
posted @ 2025-06-04 22:05 MuXinu 阅读(299) 评论(0) 推荐(0)