
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
MySQL 性能优化核心围绕减少磁盘 IO、利用索引、降低内存计算量分页查询:优先主键范围查询,非主键排序拆分 "排序取主键 + 回表";关联查询:小表驱动大表,被驱动表关联字段加索引;计数查询:根据精度要求选择 MyISAM/Redis/ 计数表方案;排序分组:利用索引避免 Filesort,MySQL8.0 可使用降序索引;数据类型:最小化类型长度,优先非 NULL,避免不合理类型选择。最后,
dump.rdb),恢复时直接将快照加载到内存。以日志形式追加记录所有写操作(读操作不记录),恢复时通过「重演日志」恢复数据,类似 MySQL 的 binlog。Redis 默认开启(写操作:先以 AOF 追加记录,AOF 重写时生成「RDB 全量快照 + AOF 增量日志」;恢复时:优先加载 AOF 文件(包含最新的 RDB 快照 + 增量日志),兼顾恢复速度与数据完整性。读写分离:分摊读压力;
环节方案代价生产者同步发送 + 重试降低吞吐Broker同步刷盘 + DLedger 集群IO / 网络负担增加消费者同步处理 + 确认无法异步提升效率集群故障降级缓存增加存储成本多次处理同一消息,业务结果一致(不重复创建订单、不重复扣款)
JVM 是 Java 代码与操作系统之间的中间层,屏蔽了不同操作系统的差异,实现 “一次编写,多次执行”。其核心是基于 Class 文件规范,任何语言(Java、Scala、Kotlin 等)只要能编译生成符合规范的 Class 文件,均可在 JVM 上运行。主流 JVM 实现:Oracle HotSpot(JDK8 默认),其他包括 JRockit、GraalVM 等。自动回收堆内存中不再被引用
类加载机制是 JVM 的 “门户”,核心是双亲委派 + 缓存机制,保障类加载的安全性和唯一性。自定义类加载器的核心是重写(自定义加载逻辑)或打破双亲委派类加载机制的实际价值:外部 Jar 加载、代码加密、热加载、多版本类共存、框架扩展(SPI/Tomcat)。
【代码】JVM 垃圾收集器(G1&ZGC)
进程:程序运行的实例,是操作系统资源分配(以内存为主)的最小单位。进程拥有独立的内存空间、IO 资源等,进程间相互独立,通信复杂(IPC 机制或网络协议)。线程:CPU 调度的最小单位,依赖进程存在,是进程内的执行实体。线程仅拥有程序计数器、寄存器、栈等必要资源,共享所属进程的全部资源,线程间通信简单(共享内存)。NEW:线程对象创建但未调用 start () 方法。RUNNABLE:包含就绪(r
Future 是对异步任务执行结果的抽象,提供对任务的取消、状态查询、结果获取能力,是 Callable 的 "结果载体"。技术演进Runnable(无返回无异常)→Callable(有返回有异常)→Future(结果管理)→(任务编排 + 回调)核心选择简单无返回异步任务:Runnable需返回结果 / 异常处理:Callable+Future复杂任务依赖(串行 / 并行 / 聚合):Compl
ThreadLocal 是 Java 提供的线程局部变量工具类,用于在多线程环境下为每个线程维护独立的变量副本,确保线程安全与数据隔离。变量通常声明为类型,用于关联线程上下文。
比较与交换,是 CPU 硬件层面的原子指令,用于实现无锁同步。核心参数:内存值 V、预期值 E、新值 N。执行逻辑:当且仅当内存值 V == 预期值 E 时,将内存值更新为 N;无论是否更新,均返回原始内存值 V,整个过程原子性由硬件保障。本质:无锁算法(非阻塞同步)、乐观锁的实现方式。







