- 博客(9)
- 收藏
- 关注
原创 Mysql相关面试知识
SQL优化与MySQL事务机制总结 摘要: 本文系统介绍了MySQL性能优化的核心方法,包括慢查询定位(日志配置与执行计划分析)、索引优化(B+树原理、聚簇索引、失效场景)以及事务机制(ACID特性实现原理)。重点阐述了索引创建原则与失效场景,深入解析了MVCC多版本并发控制机制(隐藏字段+undolog+ReadView),并说明了主从同步基于binlog的三步流程。优化建议强调遵循最左前缀法则、避免回表查询、合理使用覆盖索引,同时控制索引数量以平衡读写性能。
2025-12-17 16:29:08
851
原创 Redis面试相关知识
Redis核心知识点摘要 Redis持久化提供RDB和AOF两种方式:RDB通过快照保存全量数据,AOF记录写命令实现增量持久化。缓存问题解决方案包括:缓存穿透(布隆过滤器+空值缓存)、缓存击穿(互斥锁/逻辑过期)、缓存雪崩(随机过期时间+集群部署)。数据一致性通过延迟双删和补偿机制保证。分布式锁实现包含Redis setnx命令、Redisson框架和MySQL方案。集群部署支持主从同步(全量/增量)、哨兵模式(自动故障转移)和分片集群(数据分片存储)。Redis高性能源于内存操作、单线程模型和I/O多路
2025-12-15 15:40:32
835
原创 JVM中的引用类型
这是一个典型的软引用,实际上应该这样分析,强引用变量obj指向的是堆中Object的实例,软引用对象softRef也是指向堆中Object的实例,而不是指向强引用变量obj。强引用和软引用是对同一对象的不同引用类型,如下图所示:当强引用变量obj被回收之后,也就是obj=null时,这个时候堆中的Object实例只被一个软引用所指向,此时该实例对象的可达性也就由这个软引用所决定;其他的引用也是类似。第二,关于ref.get()方法的返回值,
2025-12-01 10:35:48
687
原创 Java垃圾回收机制全解析
Java的垃圾回收(GC)是一种自动内存管理机制,通过判断对象是否可达来确定回收对象。主要采用可达性分析算法,从GC Roots对象出发追踪引用链。JVM提供了三种基本回收算法:标记-清除(产生碎片)、标记-整理(消除碎片)和复制算法(高效但浪费空间)。实际应用中采用分代回收策略:新生代使用复制算法,老年代采用标记-清除或标记-整理。常见的垃圾回收器包括串行回收器、并行回收器、CMS(低延迟)和G1等,各自针对不同场景优化吞吐量或响应时间。GC过程可能引发STW(暂停所有用户线程)
2025-11-30 20:43:39
1420
原创 Java的类加载
本文详细介绍了Java类加载的生命周期和机制。类加载过程分为加载、验证、准备、解析、初始化五个阶段,其中验证确保字节码安全,准备为静态变量分配内存并赋默认值,解析将符号引用转为直接引用。重点阐述了双亲委派模型的工作原理及其安全性保障,以及多态的实现机制(通过动态绑定和虚方法表)。最后说明了类初始化阶段执行<clinit>()方法的特性,并举例说明如何利用其线程安全特性实现单例模式。
2025-11-25 17:45:50
1033
原创 JVM内存结构
JDK8中JVM运行时内存分为程序计数器、虚拟机栈、本地方法栈、堆和元空间。程序计数器记录线程执行位置,线程私有且无内存溢出风险;虚拟机栈存储方法调用的栈帧;本地方法栈处理native方法调用;堆是最大内存区域,存放对象实例,包含新生代和老年代,可能发生内存溢出;元空间作为方法区的实现,存储类元数据等。字符串优化通过串池机制复用常量,运行时常量池与串池协同工作。直接内存则减少数据拷贝次数,提高IO效率。
2025-11-24 14:46:45
1045
原创 python中类变量和实例变量的区别
类变量是定义在类中定义的变量,不在任何方法内,特点是,所有类的实例共享一个类变量,举个栗子就是,如果把家看成一个类,家里的冰箱看成一个类变量,家里的所有成员就是家这个类的所有实例,家里有人买东西都是会放在同一个冰箱里面,而不是再去市场买一个冰箱自己单独放自己买的东西,同样从冰箱里面取东西也是一样的。实例变量只能通过实例访问。实例变量是在类的方法中定义的变量,通常使用。:修改类变量会影响所有实例,修改实例变量只影响当前实例。:类变量对所有实例共享,而实例变量只在特定实例中有效。中,而实例变量存储在实例的。
2025-11-21 21:39:58
109
原创 在Mysql数据库中,如何监听某张表的某个字段的变化?
导入maven坐标spring-context(通常已导入)启动类添加注解@EnableScheduling开启任务调度。设置一个定时任务去查询数据库,检查字段值是否变化。2.使用Spring Boot的@Scheduled。3.查询并执行相应操作。
2025-11-21 21:39:38
220
原创 自定义线程池
摘要:本文实现了一个自定义线程池,包含阻塞队列BlockQueue和线程池ThreadPool核心组件。BlockQueue使用ReentrantLock和Condition实现线程安全的生产者-消费者模型,支持阻塞/超时获取和添加元素。ThreadPool维护固定数量的Worker线程,当任务超过核心线程数时采用策略模式处理任务拒绝,提供多种拒绝策略选项。通过函数式接口RejectPolicy实现灵活的任务拒绝处理机制,完整模拟了JDK线程池的核心功能。
2025-11-16 18:14:22
197
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅