Ekko Blog

路漫漫其修远兮 ,吾将上下而求索

JDK版本特性总览

JDK 5 ~ JDK 21 各版本新特性详解

[TOC] 版本发布时间线总览 版本 发布时间 类型 核心特性 JDK 5 2004-09 - 泛型、枚举、注解、自动装箱、并发包 JDK 6 2006-12 - 脚本引擎...

OpenSpec

AI 原生规范驱动开发系统

本文参考 OpenSpec GitHub 和 OpenSpec 中文文档,对 OpenSpec 规范驱动开发系统做一个汇总笔记 [TOC] 一、概述 OpenSpec 是由 Fission AI 开源的 AI-Native 规范驱动开发系统(Spec-Driven Development, SDD),为 AI 编码助手提供轻量级规范层。 核心理念:在第一行代码编写之前,先...

JVM再解读

JVM

[TOC] 1 2 3 4 5 6 7 8 9 10 ┌─────────────────────────────────────────────────────────────┐ │ JVM 运行时数据区 │ ├─────────────┬─────────────┬─────────────────...

架构

实战

[TOC] graph TD A[用户] --> B[DNS轮询/全局负载均衡] B --> C[负载均衡器集群<br>云LB/F5/HAProxy] B --> D[负载均衡器集群<br>云LB/F5/HAProxy] C --> E[Web服务器区] D --> E ...

事务

实战

[TOC] 分布式事务 2PC(两阶段提交) 核心思想:引入一个协调者(Transaction Manager)来统一控制所有参与者的提交/回滚。 第一阶段(Prepare):协调者询问所有参与者是否可以提交,参与者执行事务操作但不提交,返回 Yes/No 第二阶段(Commit/Rollback):如果所有参与者都返回 Yes,协调者发出 Commit;否则发出 Rollba...

场景题思考

实战

[TOC] 百万级EXCEL读取 1、EasyExcel 基于POI的事件驱动模型,逐行解析,内存占用低 2、Apache POI (SAX模式) 事件驱动、流式读取 3、逐行读取后,及时批量处理,及时释放,因为等完全读取完整个excel的时候,内存也会爆炸 思考一:支持多线程读吗 理论上不支持,核心限制:EasyExcel的读取是顺序流式解析,XML解析器必须按顺序...

零散知识点

实战

[TOC] 问题一:为什么越来越多人喜欢用构造器注入 1、不可变性 (Immutability) 构造器注入强制依赖项为 final,确保对象不可变 清晰的契约:对象创建时所有依赖必须就位 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 @Service public class UserService { priva...

mysql查缺

mysql

[TOC] 深分页 limit实现,但是当偏移量特别大的时候,查询效率就变得低下 个人理解:limit 执行策略,先拿到完整结果集,再从结果集中,丢弃前 100w 数据,只返回20条 那么这里就有问题了,完整结果集,要回表,数据量大,必然慢 优化的点:尽量依赖覆盖索引,避免回表。锁定 索引键范围后,再小批量的查询 InnoDB 页 MySQL 的默认存储引擎 Inn...

redis持久化

Redis

[TOC] RDB快照持久化 1 2 3 4 // RDB默认策略 save 900 1 # 900秒(15分钟)内至少有1个键被修改 save 300 10 # 300秒(5分钟)内至少有10个键被修改 save 60 10000 # 60秒(1分钟)内至少有10000个键被修改 RDB文件内容: [魔数] → [版本号] → [可选元数据] → [数据库数据区] ...

redis数据结构

Redis

[TOC] RedisObject 所有 Redis 键值对的统一封装,用于管理数据的类型、编码、引用计数等元信息 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 typedef struct redisObject { unsigned type:4; // 数据...